Java套接字:检查客户端是否能够从服务器接收消息

发布于 2021-01-29 20:27:11

当我收到flush()来自服务器的消息时OutputStream,客户端是否接收到消息(如果在超时之前已断开连接)。我需要以某种方式从服务器端控制这种情况,我必须知道客户端是否能够在发送消息之前接收到消息。怎么做?

关注者
0
被浏览
108
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    过去,我通常在单独的线程中使用阻塞读取来读取客户端消息并根据需要分发它们。

    如果客户端断开连接,则InputStream.read()操作将返回-1,并且我们将其视为客户端已“断开连接”并且应关闭InputStream的通知。如果连接异常终止,它也可能引发IOException。

    然后,您可以测试Socket.isClosed()以验证是否仍然可以编写消息。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看