ServerSocket
을 사용하여 Java TCP/IP 서버를 구현하여 네트워크 소켓을 통해 클라이언트의 메시지를 수락합니다.PDA가 일시 중지 모드에서 ServerSocket에 대한 TCP 연결을 끊습니다.
PDA (WIFI 바코드 스캐너)의 클라이언트를 제외하고는 정상적으로 작동합니다. 서버와 PDA 사이에 연결이되어 있고 유휴 시간이 지난 후 PDA가 대기 (대기) 상태가되면 연결에 문제가 있습니다. pda를 다시 깨어 났을 때 , 나는 TCP 모니터에서 관찰자는 다른 포트와 두 번째 연결이 설정되어 수 있지만, 이전도 설립 유지 :
로컬 호스트 : 2000 REMOTEHOST : 처음 설립 4899 (연결)
로컬 호스트 : 2000 REMOTEHOST : 웨이크 업 후 4890 설립 (연결)
그리고 클라이언트가 이제 새 연결을 사용하지만 서버가 여전히 이전에 수신 지금처럼 통신이 작동하지 않습니다 - 서버가 메시지를받지 못합니다. 그러나 서버가 클라이언트에게 메시지를 보내면 클라이언트는 문제를 인식합니다 (SocketException
: 연결 재설정을 수신하면 서버는 새로운 연결을 사용하고 그 동안 클라이언트가 보낸 모든 메시지가 한 번에 수신 됨) !
서버가 메시지를 보내려고 할 때 처음에는 네트워크 문제가 있음을 알았지 만 예외 나 예외는 없습니다. 어떻게이 문제에 적절하게 대처하여 새 연결을 사용할 수 있습니까? 설정이 끝나면 (그리고 이전 버전이 닫힌 경우)
thx, 그게 내 문제를 해결! –