2017-08-12 20 views
0

SocketChannelからの質問については質問があります。SelectedSetからSelectionKeyを削除する必要がありますか?

SelectionKey key = //; 
ByteBuffer b = ByteBuffer.allocateDirect(128); 
SocketChannel ch = (SocketChannel) key.channel(); 
int bytesRead = ch.read(b); //returns 128 

ので、その場合には、私は、チャネルから読み取ることを確認場合、すべての可能なバイト(バイトが読み出され、バッファのサイズが同じであるため)に知ることができない:私たちはこのような何かを持っていると仮定します。だからkeySelectedSetから削除する必要がありますか?または、削除しても、次のイベントループの繰り返しで、キーを取得して残りのバイトをすべて読み取ることができますか?

答えて

1

はい。読み込むデータがさらにある場合は、OP_READが再び発生します。

関連する問題