소켓에서 읽을 때 클래스 DataInputStream
을 사용하고 있습니다. 입력이 반드시 String 형식이 아니기 때문에 readByte (readLine 아님)를 사용해야합니다. 문제는 내가 함수를 호출하기 위해 스트림의 끝을 기다려야 만하고 그것을 발견 할 수 없다는 것입니다.DataInputStream 바이트의 끝 부분이 작동하지 않음 (Java)
코드 :
reader = new DataInputStream(socket.getInputStream());
byte dt;
String cmd = "";
while((dt = reader.readByte()) >= 0){
cmd += (char)dt;
if(/* end of the stream reached */){
processInput(cmd);
}
}
System.out.println("End of the loop");
문제는 내가이 if
을 작성하는 방법을 모르는 것입니다. 그리고 스트림이 끝났을 때 루프의 끝 부분에 도달하지 못했다는 증거는 "루프의 끝"이라는 문구가 인쇄되지 않으므로 루프에 막혀있는 것입니다.
아무도 작동하지 않았습니다. 프로그램의 행동은 같은 방식으로 ... – Fabiotk
해야합니다. 소켓의 다른 쪽 끝이 닫혀 있습니까? – bal