一个老问题:关闭IDTcpServer时,出现EIdClosedSocket with message Disconnected错误(50分)

  • 主题发起人 主题发起人 aKnightChen
  • 开始时间 开始时间
A

aKnightChen

Unregistered / Unconfirmed
GUEST, unregistred user!
我用 TIDTCPServer TIDTCPClient 做通讯程序,



当客户端先退出时,再关闭服务器上,(服务器端)就不会报错。



可是,如果客户端还在线,此时关了服务器,就会出现EIdClosedSocket with message 'Disconnected'



这样的错误,







我知道有一种解决方法就是在关闭之前发送通知叫客户端先下线,



但还有没有其它方法呢?



注:



我的服务器端的OnExecute代码如下:







if not AThread.Terminated and AThread.Connection.Connected then
begin
a:=AThread.Connection.ReadLn;
end;




整个程序非常简单,只是经送一些字符串而已(做测试)。



我也搜索过DelphiBBS里,别人说是OnExecute里代码有错,可我这个测试程序非常简单,
 
自已顶一下,要是再过一天没结果,我就老老实实结贴!
 
我也想知道。我现在的做法也是先通知客户端,让客户端软件自动断线。
还有就是你使用idupdserver,你使用udp方式就可以避免。如果只是简单传输字符,可以采取这样的方式。而且,最好两边都使用idupdserver.会有好处。
 
结啦,就一个人来,全给分啦。[:D]
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部