======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 结果就是服务器已经重新开启服务了 而我这个长连接还是不能恢复。
请教各位高手!!谢谢!~
...全文
76 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stick77 2004-01-05
  • 打赏
  • 举报
回复
不要用sleep(20000),用一个TTimer触发连接,周期20000,在ondisconnect事件把TTimer打开,onconnect事件关闭TTimer.
wenkie 2004-01-05
  • 打赏
  • 举报
回复
up

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧