2017-06-23 34 views
0

根據https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html#OP_READ如何製作的SocketChannel準備讀

假設一個選擇鍵的interest集合包含OP_READ在選擇操作的開始。如果選擇器檢測到相應的通道已準備好讀取,已達到流尾,已被遠程關閉以供進一步讀取,或者有待處理的錯誤,則會將OP_READ添加到該鍵的就緒操作集並添加它的選定鍵集的關鍵。

SocketChannel準備好讀取的條件是什麼?

如何明確地使其準備好閱讀?

謝謝!

回答

0

SocketChannel準備好讀取的條件是什麼?

數據存在於套接字接收緩衝區中,或者對等體已關閉或關閉其連接的結束,或者錯誤正在等待。

如何明確地使它準備好閱讀?

從同行發送或關閉連接關閉輸出。從這個角度來看,除了關閉它以輸入信息之外,你不可能在下一次讀取時輸出數據流的結束,這可能是你不想要的。