JavaソケットAPIでいくつかの問題が発生しています。ゲームに現在接続しているプレーヤーの数を表示しようとしています。プレーヤーがいつ接続したかは簡単に判断できます。ただし、ソケットAPIを使用してプレーヤーがいつ切断されたかを判断するのは不必要に難しいようです。
isConnected()
リモートで切断されたソケットを呼び出すと、常に戻るように見えtrue
ます。同様に、isClosed()
リモートで閉じられたソケットを呼び出すと、常に戻るように見えfalse
ます。実際にソケットが閉じられているかどうかを判断するには、データを出力ストリームに書き込み、例外をキャッチする必要があることを読みました。これは、この状況を処理するための本当に不潔な方法のようです。ソケットがいつ閉じられたかを知るために、ネットワークを介してゴミメッセージを絶えず送信する必要があります。
他の解決策はありますか?