inStream = socket.getInputStream();
이 방식으로 inStream.read()를 java에서 사용하면 Echo일 경우
1회만 실행되고 다음회차에서는 socketException과 더불어 소켓이 닫혀집니다.
예를 들어서 윈도우서버는 C#과 C++ 윈도우 프로그램에서는 정상적으로 작동하는 Echo버젼입니다.
그런데 java에서 string이 아닌 byte stream으로 직접 받는 것을 구현하는데
쓰레드로 C++의 소켓의 Recv()처럼 block상태로 계속 대기상태가 유지가 안되더군요,
다음 loop실행시 1회만 실행하고 난 다음 그 다음 loop를 돌때 block상태가 유지되지않고 그냥 ScoketException을 던져버리더군요.
java client와 윈도우 서버간 byte stream으로 TCP통신을 하려면 inStream = socket.getInputStream();말고 다른 방식은
없나요 ? String으로 받는 것은 사양합니다.
인터넷의 java예제들은 java server와 연동되는 예제들뿐이더군요. 윈도우서버와는 별반 차이가 없는 걸로 아는데
어떤 문제점이 있는 건가요 ? 그리고 어떤 함수를 사용하는 패턴이 나와야 하나요 ?