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