- 两台计算机通过套接字连接进行连接。如果服务器/客户端从其末端关闭连接 (即关闭
InputStream
,OutputStream
和Socket
),那么如何告知 关于断开的另一端?有一种我知道的方法 - 试图从InputStream
, 中读取,如果连接已关闭,则会抛出IOException
,但有没有其他方法可以检测到? - 另一个问题,我看着在互联网上的问题,看到
inputStream.available()
不能解决这个问题。这是为什么?
附加信息:我所要求的另一种方式,因为我的项目变得很难处理,如果我必须尝试从 InputStrem
读取检测断线。JAVA:处理插座断开连接
恩,不知道你希望如何解决这个问题。您仍然需要某种套接字读取或写入来确定它已关闭。 – Tudor
思考如何做到这一点,以便在对方关闭时(正确关闭而不是断开连接)立即通知它的套接字: 1)专用于读取套接字并将数据放入容器以备将来使用的线程处理,例如。 ArrayBlockingQueue。当它找到-1或IOException时,它可以通过设置一个标志,调用某种方法或在队列中放置一个EOS标记来停止并通知其他线程通信已结束(或已被中断)。 2)其他线程可以在需要时读取队列,并在需要时检查该标志。 –
@SaintHill Allthat完全没有增加你自己的阅读。 – EJP