4

NIO でネットワーク コードを書いています。

ByteBuffer buf = ByteBuffer.allocate(Hub.getBufferSize());
int read = channel.read(buf);
if (read == -1) {
    client.disconnect();
    return;
} else if (read == 0) {
    return;
}

読み取りが -1 を返すことはわかっています。これは、接続のストリームの終わりに到達したことを意味します。しかし、それはそのクライアントへの接続が終了したことを意味するのでしょうか? さらに、ストリームの終わりに到達したら、サーバーは明示的にチャネルを閉じる必要がありますか、それとも冗長ですか?

ありがとう。

4

2 に答える 2