在非阻塞模式下,你可以注册一个 channel ,所以当 channel 准备好写入时,通知选择器。
我的问题是,我的 channel 如何知道何时写入。 Java 决定 channel 现在可以写入的条件是什么?例如,服务器(假设我是客户端)是否通知我的 channel /套接字它已准备好读取?所以我的 SelectionKey.OP_WRITE 会触发选择器?
我想知道 read() 也一样。但我想它是在套接字已经收到一些数据时通知您读取已收到的数据。对吧?
谢谢
最佳答案
它实际上并没有告诉您它何时准备好进行物理写入,而是告诉您何时写入缓冲区中有可用空间或读取缓冲区不为空以供读取。
关于java - SocketChannel write() read() - 非阻塞 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968148/