Java NIO read() 流结束

标签 java nio socketchannel

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

documentation它表示 SocketChannel.read() 函数将返回从套接字读取的字节数,如果到达流末尾则返回 -1。

现在 - 我不太明白 “End Of Stream” 是什么意思?它与 borken pipeline 错误相同吗?

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

如果有人能解释更多关于它的信息 - 并给出一些根据它正确使用和行为的例子..

最佳答案

End Of Stream 意味着没有更多内容可读取,因为另一端已关闭流。

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

如果连接意外丢失,您将收到异常。 IE。另一端没有正常关闭连接。

关于Java NIO read() 流结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14037721/

相关文章:

java - SocketChannel.write(buffer) 阻塞并且写入零字节

Java nio 在选择器上读取 SocketChannel

java - PowerMock 类无法解析为类型

java - 环球音乐播放器说加载媒体时出错

java - 是否可以将 Grizzly 设置为正常关机?

java NIO - 多线程访问 channel

java - ByteBuffer:写入,然后返回到缓冲区的开头,并在之前写入的所有数据之前写入(前置?)

java - 如何在给定路径的树中查找节点

java - HashTable不添加字符串

Java SocketChannel 读取时写入被阻止