TCP/IP 소켓을 통해 두 개의 개별 응용 프로그램을 연결하려고합니다. 이 경우 응용 프로그램 중 어느 것도 다른 클라이언트의 "클라이언트"로 실행되고 있지 않으므로 서로 통신해야하는 별도의 두 서버로 쉽게 설명 할 수 있습니다.EOS에 도달 한 후 Java 소켓의 InputStream 재설정
데이터를 수신하려면 InputStream.Read()
함수를 사용하고 -1
값을 받으면 처리를 중지해야합니다. 그러나 이제 문제는 다른 데이터 세트가 함께 제공되는 경우 InputStream
이 이미 스트림 끝 (EOS
)에 있고 전송되는 모든 새 데이터가 삭제되거나 무시된다는 것입니다. 이 문제를 해결할 수있는 유일한 방법은 스트림의 끝 부분에 도달하면 소켓을 닫은 다음 다시 열어 다른 방식으로 더 잘 처리 할 수 있다고 생각하는 것입니다.
입력 스트림을 재설정하여 다음 데이터 세트를 준비 할 수 있습니까?
그림이 그렇게 간단하지는 않습니다. 글쎄, 필자는 쓰기 편을 닫기 위해 다른 쪽 끝을 제어 할 수 없기 때문에 EOS를 확인한 다음 닫기를 수행하고 다시 열어야한다. 고맙습니다. – JRSofty