郁闷,还是idTcpClient的问题... (53分)

B

base7

Unregistered / Unconfirmed
GUEST, unregistred user!
谁能给我一个使用idTcpClient接收消息,然后把消息显示在一个memo里的例子?
采用多线程,不要告诉我用Timer,因为可能服务器端消息发送得很快.
还有,接收是用readbuffer还是readln还是readstring....?
如何确定消息长度?
唉,问了好久了,到现在还没搞定....[:(]
 
更郁闷了, 还没有人回答[:(]
 
关注,请高手指点。
 
先发送个整数说明长度,然后发数据就可以了阿?没有那么复杂吧?
 
idTCPClient必须要“主动”去读
可以在发送出一条消息以后执行读
tcpclient.writeln('dddddd');
tcpclient.readln;
也可以通过其它事件来触发读

关于长度问题可以通过发两条消息来确定
第一条消息用来定义下一个消息的大小、结构等信息
type
theader = record
checkbyte: byte; ////校验字,标示此消息为头
size: Integer; /////下一条消息的大小
end;
var
header: THeader;
tcpclient.write(header,SizeOf(THeader));
tcpclient.write(data,size...);
client与server通过此种格式来执行特定通讯
 
indy 不是事件机制的,抛弃delphi以前Socket控件用事件编程的思想吧
 
多人接受答案了。
 
顶部