谁有用过Indy的IdTCPServer控件?是否每个接入的客户端都会自动产生一个线程? ( 积分: 28 )

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

wishme

Unregistered / Unconfirmed
GUEST, unregistred user!
如果是的话,那么各线程对某个公共的数组或链表访问要怎样进行处理?
用TCriticalSection?好象会丢包,现象是:用sniffer工具跟踪,发现client有发数据过来,但控件没收到,sniffer上显示:window frozen
请问是何原因?
 
如果是的话,那么各线程对某个公共的数组或链表访问要怎样进行处理?
用TCriticalSection?好象会丢包,现象是:用sniffer工具跟踪,发现client有发数据过来,但控件没收到,sniffer上显示:window frozen
请问是何原因?
 
是每接入一个客户端产生一个线程;
由于TidtcpserverExecute的传入参数一个连接线程,
procedure TfrmMain.tcpServerExecute(AThread: TIdPeerThread);
begin
//在此处每次只处理一个线程的数据
end;

根据你说的情况,估计是收到数据了,但没来的及显示。
解决这个问题可以加入IdAntiFreeze 来响应操作系统的其他消息
 
每个接入的客户端都会产生线程,每连接断开一次完成一次通讯
 
后退
顶部