Java 소켓 API에 몇 가지 문제가 있습니다. 현재 내 게임에 연결된 플레이어의 수를 표시하려고합니다. 플레이어가 언제 연결되었는지 쉽게 확인할 수 있습니다. 그러나 소켓 API를 사용하여 플레이어의 연결이 끊어진시기를 확인하는 것은 불필요하게 어려워 보입니다.
isConnected()
원격으로 연결이 끊어진 소켓에 대한 호출 은 항상 반환되는 것처럼 보입니다 true
. 마찬가지로 isClosed()
원격으로 닫힌 소켓을 호출 하면 항상 false
. 소켓이 닫혔는지 여부를 실제로 확인하기 위해 데이터를 출력 스트림에 기록하고 예외를 포착해야한다는 것을 읽었습니다. 이것은이 상황을 처리하는 정말 불결한 방법 인 것 같습니다. 우리는 소켓이 언제 닫혔는지 알기 위해 네트워크를 통해 쓰레기 메시지를 지속적으로 스팸해야합니다.
다른 해결책이 있습니까?