如果我失去与服务器的连接,我会在10分钟内启动闹钟。在此期间,我尝试创建一个套接字并重新建立与服务器的连接。如果闹钟响起,则没有与服务器的连接,我想关闭应用程序。
检查套接字上是否有实时连接的好方法是什么?我不确定阻塞方法是否可以接受(显然,如果没有替代方法)。
答案 0 :(得分:1)
如果我失去了与服务器的连接,我会在10分钟后启动闹钟。
所以那时你知道没有联系。
与此同时,我尝试创建一个套接字并重新建立与服务器的连接。如果闹钟响起,则没有与服务器的连接,我想关闭应用程序。
检查套接字上是否有实时连接的好方法是什么?我不确定阻塞方法是否可以接受(显然,如果没有替代方法)。
如果您在设置闹钟时知道没有连接,为什么在它到期时你不知道同样的事情?
在我看来,你需要做的就是检查套接字fd。如果它不为零,则表示连接;如果它是零,你就不会。并确保在设置闹钟时将其归零。
答案 1 :(得分:0)
只需将“connect()”函数的结果保存在任何地方,这样您就可以在10分钟内检查它。
答案 2 :(得分:0)
检查套接字上是否有实时连接的好方法是什么?我不确定阻塞方法是否可以接受(显然,如果没有替代方法)。
我假设从这个问题结束上面的解释,你知道如何处理丢失的连接,但不知道如何检查连接是否仍然存在。
检查连接是否仍然存在的最佳方法是定期向服务器发送虚拟/心跳/保持活动消息。一旦连接失效,tcp套接字就会给你一个错误(超时后),所以你知道连接已经死了,你可以尝试重新连接/标记警报等。