X
xwyliu
Unregistered / Unconfirmed
GUEST, unregistred user!
用TTcpClient的话,OnReceive事件如果不去Read的话是不触发的。只好自己去read.但是怎么知道收到多少,有没有可收的数据呢? sss:=mmoSend.Lines[TButton(Sender).Tag]; tcpclnt1.SendBuf(sss[1],Length(sss)); while tcpclnt1.Select(@boolTrue,@boolFalse,@boolFalse,1000) do begin rLen:=tcpclnt1.ReceiveBuf(bf,100000); bf[rLen]:=#0; mmoReceive.Lines.Add(StrPas(bf)); end;因为一次ReceiveBuf可能没收完。用idtcpclient也是。delphi的网络组件怎么回事啊,收到数据不触发事件。不像vb的Winsock,有DataArrival事件,到了就收。因为服务器返回的数据不定长,又没有行标志,真不知道怎么用delphi处理。