android服务器如何知道客户端断开或关闭

cih*_*ihm 2 java sockets android client-server

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

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

use*_*421 5

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

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

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

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