2015-01-15 122 views
2

在非阻塞模式下,您可以註冊一個通道,所以當它準備寫入通道時,通知選擇器。SocketChannel write()read() - 非阻塞 - Java

我的問題是,我的頻道怎麼樣,知道什麼時候寫。 java決定現在可以編寫頻道的條件是什麼?例如,服務器(假設我是客戶端)通知我的通道/套接字它準備好讀取?所以我的SelectionKey.OP_WRITE觸發選擇器?

我想知道與read()相同。但是我猜想它的套接字已經收到了一些數據,所以它會通知你閱讀已經收到的數據。對?

感謝

+1

Java不做這個決定。操作系統,特別是TCP/IP網絡堆棧。 – EJP 2015-01-15 17:42:29

回答

1

實際上,它不會告訴你,當它準備物理寫,但是當它在寫入緩衝區或自由空間讀取緩衝區不爲空閱讀。