【发布时间】:2012-08-18 22:45:46
【问题描述】:
我有一个脚本(我现在没有代码示例,但我使用了 IO::Async),它连接到远程服务器上的套接字并进行侦听。客户端通常只是监听新数据。
问题是客户端无法检测到是否发生网络问题并且套接字连接消失了。 我使用了 IO::Async,也尝试了 IO::Socket。建立初始连接后,句柄始终“已连接”。
如果网络连接再次建立,套接字连接自然仍然丢失,因为脚本不知道它应该重新连接。
我正在考虑创建某种“keepAlive”,它每 X 秒“ping”(syswrite)套接字(如果没有新消息通过套接字)来检查连接是否仍然存在。
这是正确的方法吗,还是可能有另一种更有创意或更清洁的解决方案?
【问题讨论】:
-
我认为您所说的“心跳”程序是解决此问题的唯一已知方法。我向你保证,它非常干净和有创意。 )
标签: perl sockets networking io