마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

java client TCP 소켓과 윈도우 TCP 소켓 서버간 bytes stream통신문제

0 추천
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와 연동되는 예제들뿐이더군요.   윈도우서버와는 별반 차이가 없는 걸로 아는데

어떤 문제점이 있는 건가요 ?   그리고 어떤 함수를 사용하는 패턴이 나와야 하나요 ?
천사강아지 (240 포인트) 님이 2013년 8월 1일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...