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

TCP 통신 질문이요...

0 추천

서버 : C++(Win7)

클라이언트 : Java(안드로이드)

서버와 클라이언트는 TCP 통신을 하면서 클라이언트측에서 0.5초 주기로 10바이트 내외의
패킷을 계속 보냅니다.
 
그런데 클라이언트에서 패킷을 전송하면 이게 바로 가지 않고, 버퍼에 누적됐다가 나가는지
서버에서 찍어보면 여러 패킷이 한꺼번에 뭉쳐오는 경우가 있습니다.
 
근데 또 0.5초 간격으로 잘 가는 경우도 있어요. 현상이 일관적이지가 않습니다.
 
대강의 클라이언트 소스는
 
SocketAddress sock_addr = new InetSocketAddress(ip, port);
socket = new Socket();
socket.connect(sock_addr, timeout);
 
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
 
// 패킷생성
 
out.write(packet);
out.flush();
 
대충 이렇습니다.
flush 하게되면 바로바로 전송될 줄 알았는데 그렇지가 않네요.
 
윈도우 클라이언트도 있는데 이건 이런 현상 없이 일정 간격으로 잘 나가거든요.
 
왜 이런 현상이 생길까요?
hyperhand (330 포인트) 님이 2013년 6월 30일 질문

1개의 답변

0 추천
 
채택된 답변
자답이네요.

왜 그런지는 모르겠으나 컴퓨터와 폰이 USB 케이블로 연결된 상태에서 이런 현상이 발생하네요.

분리하면 문제가 없어지네요.
hyperhand (330 포인트) 님이 2013년 7월 10일 답변
...