2012-12-26 4 views
2

Java NIO를 사용하여 내 서버에서 읽고, 쓰고 싶습니다.Java NIO read() End Of Stream

documentation에서 SocketChannel.read() 함수는 소켓에서 읽은 바이트 수를 반환하고 스트림의 끝 부분에 도달하면 -1을 반환합니다.

지금 - "End Of Stream"이 무슨 뜻인지 정말로 모르겠습니까? borken pipe와 (과) 동일합니까?

양쪽 연결이 끊어져서 SocketChannel을 닫아야한다는 뜻입니까?

내가 누군가에 대한 자세한 내용을 설명 할 수있는 경우 전체 정말 좋은 것

- 그리고 사용하고 그것에 따라 올바르게 행동의 몇 가지 예를 들어 줄 ... 스트림의

+1

스트림의 끝은 읽어야 할 것이 더 이상 없다는 것을 의미합니다. 나는. 스트림 (파일 끝)의 모든 데이터를 읽었습니다. – svz

+0

그게 아니야 int read = read() ---> read = 0은? 아무것도 읽지 않았 니? 읽을만한 게 없나요? –

+1

즉, 모든 데이터는 스트림에서 읽었지만 스트림은 살아있을 수 있습니다. –

답변

2

끝이 다른 쪽 끝 때문에 읽을 수 아무것도이 없음을 의미 스트림을 닫았습니다.

값은 0이 아니며 0입니다.

예기치 않게 연결이 끊어지면 예외가 발생합니다. 나는. 다른 쪽 끝은 우아하게 연결을 닫지 못했습니다.