首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

indy 10 UDP 发消息 中文乱码

2012-12-14 
indy 10 UDP 发消息 中文乱码 求救服务端接收消息代码procedure TForm2.IdUDPServer1UDPRead(AThread: TId

indy 10 UDP 发消息 中文乱码 求救
服务端接收消息代码

procedure TForm2.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  AData: TBytes; ABinding: TIdSocketHandle);
begin
  memo1.Lines.Add(ABinding.PeerIP+' 来消息 ……' );
  memo1.Lines.Add(BytesToString(AData));
end;


客户端发送代码就一个

IdUDPClient1.Send(memo1.Text);

程序运行后,英文和数字没问题,就是中文会出现乱码

我用的是2010 的indy 10 版本,哪位大侠能教我如何解决? 

曾经用过 UTF8 ,结果光是加码了,不知道解码,服务端不知道怎么写了
IdUDPClient1.Send(memo1.Text,TEncoding.UTF8);

希望能给出关键的代码,叩谢!!!!
[解决办法]
我自己顶顶自己

[解决办法]


procedure TForm1.Button1Click(Sender: TObject);
begin
   IdUDPClient1.Send(Memo1.Text,TEncoding.UTF8);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    IdUDPServer1.Active :=true ;
    IdUDPClient1.Active :=true ;
end;

procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  AData: TBytes; ABinding: TIdSocketHandle);
 var
  RecString:string;
  i:Integer;
begin
  RecString:=StringOf(AData);
  Memo2.Lines.Add('收到数据:'+Trim(RecString));
end;


end.


[解决办法]
终于搞定了,突发奇想的就搞定了
接受信息代码

memo1.Lines.Add(BytesToString(AData,TEncoding.UTF8));

中文不再乱码
[解决办法]
这么说只能来接分了。。嘿嘿
[解决办法]
我也接分 顺便把你的经验记住
[解决办法]
我在进行indy10.5.7这个版本进行idTCPClient及idTCPServer进行编程时同样汉字收发时会产生乱码,我在单元的里引用了 HTTPApp 单元,

在发的时候这样写IdTCPClient.IOHandler.WriteLn(HTTPEncode(edtMsg.Text));
在收的时候这样写HTTPDecode(IdTCPClient.IOHandler.ReadLn); 就可以用汉字进行通讯了

热点排行