如何使SocketChannel准备好读取

时间:2017-06-23 10:20:17

标签: java nio socketchannel

根据https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html#OP_READ

  

假设选择键的兴趣集在选择操作开始时包含OP_READ。如果选择器检测到相应的通道已准备好读取,已到达流末尾,已远程关闭以进一步读取,或者有未决的错误,则它会将OP_READ添加到密钥的准备状态 - 操作集并将密钥添加到其选定密钥集。

SocketChannel准备好阅读的条件是什么?

如何明确地为阅读做好准备?

感谢!!!

1 个答案:

答案 0 :(得分:0)

  

SocketChannel准备好阅读的条件是什么?

数据存在于套接字接收缓冲区中,或者对等方已关闭或关闭其连接结束,或者错误正在等待。

  

如何明确地为阅读做好准备?

从对等方发送内容或关闭连接,然后将其关闭以进行输出。从这一端来说,除了将其关闭以进行输入之外,你不能这样做,这将在下一次阅读中传递结束,这可能是你不想要的。