SocketChannel.write(ByteBuffer)
方法时,会抛出一个 IOException
:“Broken pipe”。
什么会导致“broken pipe”,更重要的是,是否有可能从这种状态中恢复?如果无法恢复,似乎这将是一个好迹象,表明发生了不可逆转的问题,并且我应该简单地关闭此套接字连接。这是合理的假设吗?是否存在在套接字连接仍然正常连接而不是工作连接在某些情况下会引起此 IOException
的时间点?
顺便说一句,总是在尝试 SocketChannel.write()之前调用
SocketChannel.isConnected()
是否明智,如果是,我也可以假设如果 SocketChannel.isConnected()
和 SocketChannel.isConnectionPending()
都为 false
,则该连接已“中断”,应将其关闭?
谢谢!