首页 文章

检测客户端何时断开与服务器的连接

提问于
浏览
0

如何检测客户端何时与使用ServerSocket和Socket的服务器断开连接?

我有一个对象I / O流 . 当客户端断开连接时,我想服务器减少当前运行的连接并显示一条消息 . 这必须或多或少地在断开连接的确切时间发生 . 你怎么得到这个?

2 回答

  • 1

    在这种情况下,当相应的读操作返回-1(对于原始read()调用)或null(对于readLine()调用)或抛出 EOFException (对于所有其他 readXXX() 调用)时,可以检测到流结束 .

    在关闭的套接字上执行时,套接字方法将导致 SocketException: socket closed . 这表示您的编程错误 .

    这个问题还有一个解决方案是在两个连接的实体之间定期交换心跳,大多数电信系统使用这种方法来响应断开连接 .

  • 1

    如果你试着读或写一些东西,那么你就会知道 . 通过执行read()来检测这个,它将返回-1(EOF)或引发SocketException(“连接重置”) .

相关问题