在Java中,你如何处理套接字断开连接?

2022-09-04 21:03:23

大家好。我有一个使用ServerSocket和Socket类用java编写的服务器。

我希望能够检测并处理断开连接,然后在必要时重新连接新客户端。

检测客户端断开连接、关闭套接字,然后接受新客户端的正确过程是什么?


答案 1

据推测,您正在从套接字读取,可能在输入流上使用包装器,例如 BufferedReader。在这种情况下,当相应的读取操作返回 -1(对于原始 read() 调用)或 null(对于 readLine() 调用)时,可以检测流结束。

在关闭的套接字上执行某些操作时会导致套接字异常,您还需要适当地处理该操作。


答案 2

检测另一端的唯一安全方法是定期发送检测信号,并让另一端基于缺少检测信号而超时。


推荐