高手请进:关于idtcpclient的奇怪现象 (50分)

A

Adnil

Unregistered / Unconfirmed
GUEST, unregistred user!
使用idtcpclient发送字符串
for i := 0 to sList.count- 1 do
begin
idtcpclient1.WriteLn(sList);
...
...
end;
循环400次左右以后(sList.count大致在3000左右),writeln就没有响应了,这是怎么回事?
 
会不会是那边来不及接收了?
 
to 教父:
答得好,部分服务器可以响应,部分服务器不能响应。

我是否应该在循环中加一些sleep语句呢?
 
对方TCP接收缓冲区满了. 导致发送方进入阻塞状态.
只能根据接收方的带宽, 在发送方加入流量控制.

 
具体如何避免呢?
 
每次发送之后等待接收方回复一个信号。
 
我的确是等待接收方的回复信号的,但是如果传大的数据包的时候(例如很长的一个字符串),
但是没有传完,对方是不会发回复信号给客户端的。这如何处理呢?
 
有OnWrite之类的事件吧,只有在那里写发送才是最好的
 
似乎不应该是这个原因,我也碰到过这杨德问题,后来是回避了
 

Similar threads

I
回复
0
查看
719
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
763
import
I
顶部