我正在进行套接字编程。有没有办法立即检测服务器与客户端的断开连接。
我使用了socket.isConnected,isBound方法但是我没有得到好的结果。
我试图连续读取流中的数据进行检查,但它会阻止数据不可用或从服务器返回,我不想写垃圾数据每次发送以检查与服务器的连接
请提出任何建议。
答案 0 :(得分:-1)
这取决于您使用的套接字类型。即便如此,为您的特定目的实施保持活动机制也是不可避免的。
如果连接仍然存在,默认TCP保持活动机制每2小时(!)检查一次。可以更改此默认值,但可能无效。参见:
Does a TCP socket connection have a "keep alive"?
另一方面,UDP是无状态的;没有联系。应该解释socket.isConnected()的上下文是它是否绑定到本地端口。对于UDP,绝对需要来回发送ping / pongs以确定连接性。
希望它有所帮助。