아파치의 텔넷 클라이언트로부터 입력 스트림을 받고 있습니다. 텔넷 클라이언트에 명령을 보낼 때마다 터미널 출력을 다시 InputStream에 기록하지만이 스트림은 텔넷 세션까지 열려 있습니다.자바에서 끝까지 열린 스트림을 읽습니다.
이제 끝까지이 스트림의 데이터를 읽는 방법을 원합니다. 스트림이 항상 열려 있기 때문에 문제가 끝날지 결정할 수 없습니다. 특정 문자가 발견 될 때까지 데이터를 읽지 않았습니다. 이는 대부분의 경우 프롬프트입니다.)하지만 프롬프트는 명령에 따라 계속 변경되며 명령 실행 후 무엇이 될지 알 길이 없습니다.
더 잘 설명 SO에 비슷한 질문이있다지만 아무 대답이 없다 :
도와주세요 ...
: inputStream.read의() 나는이 사용? 모든 것을 읽는 것과 5 초 만에 다른 바이트를 사용할 수 있다는 차이점을 어떻게 예상합니까? –
유일한 '진짜'끝은 InputStream이 닫히면'read()'가'-1'을 반환합니다. 다른 모든 것은 프로토콜에 따라 다릅니다. – Neet
@JonSkeet "끝"내 말은 데이터가 availbale.any 방법을 찾을 때까지 사용할 수있는 방법입니다(),하지만 너무 안정적이고 CPU가 집중적이지 않다 – vishesh