当SelectionKey在java nio中变为可写时

时间:2012-07-06 10:23:34

标签: java nio

现在我的服务器从客户端读取所有消息。现在它是一种单向沟通。我想通过服务器向客户端发送消息。现在服务器在密钥是READABLE时读取消息状态它没有转向可写状态我只想知道密钥何时变为可写。

2 个答案:

答案 0 :(得分:5)

  

我只是想知道密钥何时更改为可写

它几乎总是可写的。只要套接字发送缓冲区中有空闲空间,就会触发OP_WRITE,这几乎是所有时间。只需致电write(),,如果您收到归零,那么就会开始对OP_WRITE产生兴趣:您可以用它来告诉您该频道何时再次变为可写状态。

但是你不需要等待这个事件,除非你刚刚从{{1}返回零长度。在正常情况下你应该在准备就绪时写,并且仅在write().返回零之间的时间间隔内注册OP_WRITE,而在您重试注册write()之后没有注册OP_WRITE时才注册{<1}}。

答案 1 :(得分:-1)

key.interestOps(SelectionKey.OP_WRITE);