2017-06-23 29 views
0

根据https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html#OP_READ如何制作的SocketChannel准备读

假设一个选择键的interest集合包含OP_READ在选择操作的开始。如果选择器检测到相应的通道已准备好读取,已达到流尾,已被远程关闭以供进一步读取,或者有待处理的错误,则会将OP_READ添加到该键的就绪操作集并添加它的选定键集的关键。

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

如何明确地使其准备好阅读?

谢谢!

回答

0

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

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

如何明确地使它准备好阅读?

从同行发送或关闭连接关闭输出。从这个角度来看,除了关闭它以输入信息之外,你不可能在下一次读取时输出数据流的结束,这可能是你不想要的。