======ClientSocket控件关闭不了socket连接!======

highbury 2004-01-02 04:02:27
用一clientsocket空件与unix下主机建立socket连接。是长连接一旦连接成功后就一直保持着。
现在手动停止服务器服务,clientsocket控件的ondisconnect事件能捕捉到。我想实现每隔一段时间(20秒)去尝试自动重新连接。等服务器恢复正常后在保持这个长连接。

clientsocket的 disconnect 事件如下:

while not clientsocket.active do
begin
sleep(20000);
clientsocket.active:=false;
clientsocket.address:='***.**.**.***';
clientsocket.port=8888;
clientsocket.active:=true;
end;
现在问题是当服务器短开后程序在一直尝试重新连接(这当然没有问题),而当我把服务起来以后,也就是说按理clientsocket.active应该是true了 但是我跟踪的结果是还是false 结果就是服务器已经重新开启服务了 而我这个长连接还是不能恢复。
请教各位高手!!谢谢!~
...全文
18 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stick77 2004-01-05
不要用sleep(20000),用一个TTimer触发连接,周期20000,在ondisconnect事件把TTimer打开,onconnect事件关闭TTimer.
回复
wenkie 2004-01-05
up
回复
发动态
发帖子
网络通信/分布式开发
创建于2007-08-02

1566

社区成员

Delphi 网络通信/分布式开发
申请成为版主
社区公告
暂无公告