2

我有两个android设备,A是服务器,B是客户端,并通过套接字连接,服务器/客户端如何知道对方是断开还是关闭,

我尝试了 isconnect(),但没有用。

4

1 回答 1

5

如果对端已正常断开连接:

  • read()将返回 -1
  • readLine()将返回 null
  • readObject(), readUTF(),readXXX()对于任何 XXX 都会抛出 `EOFException

如果对等端异常断开,连接变坏等,任何读取或写入方法都会抛出一个异常,IOException,除非没有读取超时的读取可能会永远阻塞:这就是为什么您应该始终使用读取时间(通过setSoTimeout())。

isConnected()仅告诉您是否曾经连接或接受过套接字。isClosed()只告诉你是否曾经关闭它。这些 API 告诉您的是Socket,而不是连接。

于 2013-03-23T05:58:14.260 回答