【Java.NIO】SelectionKey,***監聽的事件***
阿新 • • 發佈:2019-01-02
java.nio.channels
public abstract class SelectionKey extends Object
SelectionKey物件是用來跟蹤註冊事件的控制代碼。
在SelectionKey物件的有效期間,Selector會一直監控與SelectionKey物件相關的事件,如果事件發生,就會把SelectionKey物件加入到selected-keys集合中。
在以下情況下,SelectionKey物件會失效,這意味著Selector再也不會監控與它相關的事件:
- 程式呼叫SelectionKey的cancel()方法
- 關閉與SelectionKey關聯的Channel
- 與SelectionKey關聯的Selector被關閉
***SelectionKey中定義的4中事件 ***
- SelectionKey.OP_ACCEPT —— 接收連線繼續事件,表示伺服器監聽到了客戶連線,伺服器可以接收這個連線了
- SelectionKey.OP_CONNECT —— 連線就緒事件,表示客戶與伺服器的連線已經建立成功
- SelectionKey.OP_READ —— 讀就緒事件,表示通道中已經有了可讀的資料,可以執行讀操作了(通道目前有資料,可以進行讀操作了)
- SelectionKey.OP_WRITE —— 寫就緒事件,表示已經可以向通道寫資料了(通道目前可以用於寫操作)