私は、内部キューがすでにいっぱいの場合、ソケット上のOP_READイベントを無視するはずのトランスポート機構で作業しています。ソケットレベルでの顧客リクエストの再試行
SelectionKey next = it.next();
if (next.isReadable()) {
SocketChannel client = (SocketChannel) next.channel();
if (!innerqueueIsFull()) {
if (client.read(nextRead) == -1) {
break;
}
}
}
保留中の要求のいずれかの応答を書き込んだ後、戻り、チャネル上のデータパケットの読み込みを再試行します。リクエストの読み込みを再試行するにはどうすればよいですか?
ありがとうございます。これは完璧に聞こえる。 (Btw、私が投稿した抜粋はちょうどテストコードです、私はclient.read()が-1を返すときに中断しません) – user1071840