问一个IdTCPClient的问题。急用!明早调试 ( 积分: 13 )

  • 主题发起人 主题发起人 wishme
  • 开始时间 开始时间
W

wishme

Unregistered / Unconfirmed
GUEST, unregistred user!
IdTCPClient连接IdTCPServer,connect成功后,我在
IdTCPClient端用一定时器处理接收server端发来的数据,如下:

var
s_recv:string;
begin
s_recv:=IdTCPClient1.ReadString(10);
if s_recv<>'' then
begin
...
end

为什么我IdTCPClient端一连接,程序就变得很慢,拖动窗口等操
作等都很慢,但一断开就正常了,我发现是
s_recv:=IdTCPClient1.ReadString(10);
造成的,换成:
s_recv:=IdTCPClient1.ReadLn(' ',3);
不会,可是我不能用后一句。因为Server没有在数据后跟回车换行符
所以只能用上一句。还有别的方法吗?
 
IdTCPClient连接IdTCPServer,connect成功后,我在
IdTCPClient端用一定时器处理接收server端发来的数据,如下:

var
s_recv:string;
begin
s_recv:=IdTCPClient1.ReadString(10);
if s_recv<>'' then
begin
...
end

为什么我IdTCPClient端一连接,程序就变得很慢,拖动窗口等操
作等都很慢,但一断开就正常了,我发现是
s_recv:=IdTCPClient1.ReadString(10);
造成的,换成:
s_recv:=IdTCPClient1.ReadLn(' ',3);
不会,可是我不能用后一句。因为Server没有在数据后跟回车换行符
所以只能用上一句。还有别的方法吗?
 
有个名字类似 IdThreadMerg 的控件,准确名气我不记得了。你把它拖到你的Form上看看。
 
用单独一个线程来读, idtcpclient本来就是希望这样来用的, 详细的你到indy官方网站上去下载程序范例, 你一看就明白了
 
后退
顶部