SocketChannel 읽기는 문서로 스트림의 끝을 의미하는 "-1"바이트를 계속 읽습니다. ROX NIO 튜토리얼SocketChannel 읽기 계속 -1
그가
if (numRead == -1) {
// Remote entity shut the socket down cleanly. Do the
// same from our end and cancel the channel.
key.channel().close();
key.cancel();
return;
}
그러나 나는 그가 맞다 확실하지 않다, 원격 측이 나에게 N 바이트를 보낸 일이 발생할 수 없다는, 기다렸다 오초 (의 더 시간 제한을지지 않습니다하자) 다른 M 바이트를 보내주세요.
read() 메서드를 호출하는 동안 여전히 -1이 반환됩니까? 그렇다면 socketChannel을 닫고 등록을 취소하지 않고 다음 M 바이트를 기다리고 싶습니다.
한편, 나는 바쁜 대기처럼 보이는 셀렉터로부터 수많은 READ 이벤트를 계속 받는다.
그런 경우 올바른 접근 방법은 무엇입니까?