2015-01-15 77 views
2

在非阻塞模式下,您可以注册一个通道,所以当它准备写入通道时,通知选择器。SocketChannel write()read() - 非阻塞 - Java

我的问题是,我的频道怎么样,知道什么时候写。 java决定现在可以编写频道的条件是什么?例如,服务器(假设我是客户端)通知我的通道/套接字它准备好读取?所以我的SelectionKey.OP_WRITE触发选择器?

我想知道与read()相同。但是我猜想它的套接字已经收到了一些数据,所以它会通知你阅读已经收到的数据。对?

感谢

+1

Java不做这个决定。操作系统,特别是TCP/IP网络堆栈。 – EJP 2015-01-15 17:42:29

回答

1

实际上,它不会告诉你,当它准备物理写,但是当它在写入缓冲区或自由空间读取缓冲区不为空阅读。