IdTCPServer多个客户端同时访问的问题(100分)

  • 主题发起人 主题发起人 zhi_dian
  • 开始时间 开始时间
Z

zhi_dian

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Indy TCP,做一个INTERNET通迅程序,但多个客户端同时防问服务器端时会产生错误,请问该怎么解决???急。。。
 
使用id提供的多线程,可以解决问题的了!
 
具体怎么解决?能告诉我吗,非常感谢。。。
 
或者给个Demos
 
咋没有人回答啊~~~~~~~~~
 
我来帮你顶了,也关注此问题!
 
indy控件好像都是以线程实现的,在服务段添加线程控制控件,idThreadMgrDefault或者IDThreadMgrPool
 
idTCPserverExcute()函数非线程安全的!
 
IdTcpServer 本身就支持多个客户端同时访问,可能是你处理方式有问题
 
服务端操作VCL要用Synchronize
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
AThread.Synchronize(你的过程);
end;
 
idtcpserver服务器一般错误有两种:
1、由于VCL多线程不安全,所以在idtcpserver的execute函数中如果有操作VCL ,则需要多线程同步。
2、如果有通信异常,如果用户多或者在链路长的话,发生的概率很大,这是要把当前服务线程中止掉,不要试图恢复,虽然TCP协议允许异常发生后,恢复应用。
 
多人接受答案了。
 
后退
顶部