Indy10 Tcp接收数据问题
在做Delphi开发时,使用Indy组件来做网络通讯是一种比较快捷的方式。今天要说一下indy10中tcp接收数据的问题。 我们在测试时经常使用Wrinteln来发送数据,用Readln来接收数据。用这个两个函数来测试Server端和Client端的通讯 是否正常。但在实际使用中我们很多时候发送的数据包都是比较复杂的,并不会带有回车键。也有可能用来接收XML报文, 在报文中是可能包含多次的回车键的。这种情况下显然没有办法用ReadLn来处理。 我们可以用以下方法来接收数据: procedure TForm1.Button1Click(Sender: TObject); var xml:string; buf:TIdBytes; begin if IdTCPClient1.Socket.Readable() then begin IdTCPClient1.Socket.ReadBytes(buf,-1); //第二个参数使用-1表示接收所有长度。因为我们并不知道要接收的数据到底有多长 xml:=BytesToString(buf); end; end;
来源:https://www.cnblogs.com/WushiShengFei/p/7440316.html
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.17954802513123 seconds