是否可以取消注册,然后再次使用同一个选择器注册? 我必须限制我接受的连接数量,并执行key.cancel()来停止接收OP_ACCEPT事件。在java中取消注册并重新注册NIO
server.register(selector, SelectionKey.OP_ACCEPT);
...
key.cancel()
...
如果连接被关闭,我不能再次运行寄存器(..),得到一个 java.nio.channels.CancelledKeyException
Javadoc文档寄存器(..):如果该通道的CancelledKeyException扔目前已注册给定的选择器,但相应的密钥已被取消
实现我想要做什么的方法是?
你能告诉我们更多你的代码吗?这听起来像是你忘记重新注册你的频道。 – Jeffrey