我使用socket for android< --->服务器通信。当我与WIFI建立连接然后关闭WIFI时,手机会切换到蜂窝数据。显然,套接字不能再使用了。但是我找不到检查套接字是否不再可用的方法。
socket.isConnected()
true
socket.isClosed()
false
socket.write()
无异常返回。这就是为什么这个问题与this
socket.read()
阻止,不返回-1或任何异常
socket.isOutputShutdown()
false
实现心跳行为本身是可行的,但看起来应该有办法查看套接字是否无效。在我的情况下,读取超时是不合理的,因为读取数据之间的时间可能会有所不同。