WLAN 연결을 통해 TCP Java 서버와 통신하는 Android 애플리케이션을 개발 중입니다. 안드로이드 응용 프로그램은 스프라이트가 화면 주위를 움직이는 게임입니다. 스프라이트가 움직일 때마다 AndroidClient는 좌표를 Java 서버로 보내고 다른 클라이언트 (최대 4 클라이언트)에게 데이터를 보냅니다. 서버는 별도의 스레드에서 각 클라이언트를 처리하고 데이터 업데이트는 약 20ms마다 전송되며 각 패킷은 약 1-10 바이트로 구성됩니다. 나는 70 Mbit 네트워크에있다. (약 15 Mbit는 My Wireless에 유효하다.)Java TCP 대기 시간
불안정한 연결 및 약 50-500 ms에서 대기 시간이 발생하는 문제가 있습니다. 매 10 ~ 30 번째 패킷. tcpNoDelay를 true로 설정했습니다. 일관된 200ms 대기 시간이 중지되었지만 아직 많이 지연되었습니다. 나는 안드로이드와 네트워킹에 새로운 것이므로 이것이 기대되는지 아닌지는 모른다. 또한 UDP가 내 프로그램에 적합 할 수 있는지 궁금합니다. 제대로 도착하는 모든 패킷보다 빠른 속도로 업데이트를 보내고 싶습니다.
이 대기 시간 문제를 피하는 방법에 대한 안내는 감사하겠습니다. 클라이언트 - 서버 아키텍처를 구현하는 방법에 대한 일반적인 팁도 박수를 보냅니다.
UDP가 확실히 좋은 옵션 같아 보입니다. 게임에 대해 –
을 사용하면 일부 예측 (아마도 일부 게임에서 오판의 결과를 보았을 것입니다)을 추가하려고합니다. – ninjalj
wireshark 또는 tcpdump를 사용하여 네트워크 활동을 캡처하고 여기에 게시하십시오. – gudok