是否可以取消註冊,然後再次使用同一個選擇器註冊? 我必須限制我接受的連接數量,並執行key.cancel()來停止接收OP_ACCEPT事件。在java中取消註冊並重新註冊NIO
server.register(selector, SelectionKey.OP_ACCEPT);
...
key.cancel()
...
如果連接被關閉,我不能再次運行寄存器(..),得到一個 java.nio.channels.CancelledKeyException
Javadoc文檔寄存器(..):如果該通道的CancelledKeyException扔目前已註冊給定的選擇器,但相應的密鑰已被取消
實現我想要做什麼的方法是?
你能告訴我們更多你的代碼嗎?這聽起來像是你忘記重新註冊你的頻道。 – Jeffrey