过去,我通常在单独的线程中使用阻塞读取来读取客户端消息并根据需要分发它们。
如果客户端断开连接,则InputStream.read()操作将返回-1,并且我们将其视为客户端已“断开连接”并且应关闭InputStream的通知。如果连接异常终止,它也可能引发IOException。
然后,您可以测试Socket.isClosed()以验证是否仍然可以编写消息。

过去,我通常在单独的线程中使用阻塞读取来读取客户端消息并根据需要分发它们。
如果客户端断开连接,则InputStream.read()操作将返回-1,并且我们将其视为客户端已“断开连接”并且应关闭InputStream的通知。如果连接异常终止,它也可能引发IOException。
然后,您可以测试Socket.isClosed()以验证是否仍然可以编写消息。