android服务器如何知道客户端是断开连接还是关闭

时间:2013-03-23 05:54:45

标签: java android sockets client-server

我有两个android设备,A是服务器,B是客户端,并且与socket连接, 服务器/客户端如何相互断开或关闭,

我尝试过isconnect(),但没用。

1 个答案:

答案 0 :(得分:4)

如果对等方正常断开连接:

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

如果对等体异常断开,连接变坏等,任何读取或写入方法都将抛出IOException,,但没有读取超时的读取可能会永久阻塞:这就是为什么你应该总是使用阅读时间(通过setSoTimeout())。

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