对于我的一些 Java NIO 连接,当我SocketChannel.write(ByteBuffer)
接到电话时,它会抛出一个IOException
:“Broken pipe”。
是什么导致了“断管”,更重要的是,是否有可能从该状态中恢复?如果无法恢复,这似乎是一个好兆头,表明发生了不可逆转的问题,我应该简单地关闭这个套接字连接。这是一个合理的假设吗?IOException
当套接字连接首先仍然正确连接(而不是在某个时候失败的工作连接)时,是否曾经发生过这种情况?
SocketChannel.isConnected()
附带说明一下,在尝试 a 之前总是打电话是否明智SocketChannel.write()
,如果是这样,我是否还可以假设连接已“断开”并且如果两者都应该关闭并且SocketChannel.isConnected()
两者SocketChannel.isConnectionPending()
都是false
?
谢谢!