0
Socket을 수신하기 위해이 InputStream 리더를 작성했습니다. 이 코드는 run
스레드 내부의 while(!stop)
루프에 있습니다. 이 판독기는 스레드를 차단하고 메시지를 인쇄하지 않습니다.InputStream 리더 차단 스레드
int read = 0;
byte[] buf = new byte[512];
int index = 0;
try {
while (!stop && (read = in.read()) != -1) {
System.out.println("read loop");
buf[index++] = (byte) read;
}
} catch (IOException e) {
e.printStackTrace();
}
클라이언트/서버가 글쓰기를 중지합니까? 스트림 측면을 플러시하거나 닫습니까? –
'Socket'에 의해 제공되는'InputStream'이 블로킹하고 있습니다. 예상 된 동작입니다. 아니면 513 바이트를 보내고 ArrayIndexOutOfBoundsException을 얻을 수 있습니다. – chrylis