indy的简单通信
- Delphi(Pascal) code
procedure TForm3.btn1Click(Sender: TObject); //发送edt1的内容给serverbegin IdUDPClient1.Connect(); IdUDPClient1.Send(Edt1.text); IdUDPClient1.Disconnect(); //通过Indy Client UDP发送消息end;procedure TForm3.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes; ABinding: TIdSocketHandle); //这里ADate是TBytes,为什么?书上怎么是streamVar TempStream : TStringStream;begin TempStream := TStringStream.Create(''); TempStream.Write(Adata,sizeof(Adata)); memo2.Lines.Add(TempStream.DataString); TempStream.free;end;//输出的结果是乱码,对这个不懂,求懂得指点下[解决办法]
你传递的数据是不是有中文?用的delphi版本是不是2009以上?
如果是就要这样:
IdUDPClient1.send(Edit1.text,TEncoding.UTF8);//指定编码
memo2.Lines.Add(TempStream.DataString,,TEncoding.UTF8);