我试图找出Android IO套接字当前是否已连接,以下(socket.connected)似乎告诉我套接字是否已在某个时刻连接 - 而不是它当前是否仍然连接
答案 0 :(得分:0)
EJP的回答已经很好了,你基本上不必检查套接字是否已连接。未连接的套接字上的操作将导致异常。因此,您所要做的就是尝试捕获代码。在操作之前检查插座是否打开是不够的,因为如果发生这种情况你可能会遇到麻烦:
if(socket.isConnected()) {
// cut the ethernet cable here
socket.read/write operations
}
TCP也不直接处理断开连接事件。如果以太网电缆被切断或类似,如何立即检测物理层断开连接?你根本就不能,总有一段时间来检测它。对于常规断开连接可能存在这种可能性,但这也不安全,因为我已经展示了示例,因此您永远无法信任这样的函数或方法。