Java NIO read()End Of Stream

我正在使用Java NIO来接受,读取和写入我的服务器。

在文档中,它说SocketChannel.read()函数将返回从套接字读取的字节数,如果它到达流的末尾则返回-1。

现在 – 我真的不明白"End Of Stream"是什么意思? 它和borken pipe错误一样吗?

这是否意味着双方都失去了连接,我应该关闭SocketChannel?

如果有人可以解释更多关于它的话,我会非常满意 – 并根据它给出一些正确使用和行为的例子。

End Of Stream意味着没有什么可读的,因为另一端关闭了流。

值为0不是什么都不是,它是零。

如果连接意外丢失,您将收到exception。 即另一端没有优雅地关闭连接。