Java で TCP 接続を使用するクライアント サーバー チャット アプリケーションを設計しています。クライアントが強制的に終了したときにサーバー側で検出する方法がわかりません。オンラインクライアントのリストを維持していて、接続を強制的に閉じたときにユーザーをリストから削除する必要があるため、これが必要です。
どんな助けでも大歓迎です。
ありがとう
タラ・シン
Java で TCP 接続を使用するクライアント サーバー チャット アプリケーションを設計しています。クライアントが強制的に終了したときにサーバー側で検出する方法がわかりません。オンラインクライアントのリストを維持していて、接続を強制的に閉じたときにユーザーをリストから削除する必要があるため、これが必要です。
どんな助けでも大歓迎です。
ありがとう
タラ・シン
切断のタイムリーな通知を受信する 1 つの方法は、小さな情報を定期的に送信することです。次に、クライアントの切断について知る最新のものは、せいぜいあなたの間隔です。人々はこれをハートビートと呼んでいます。
サーバーがjava.net.Socketを使用していると仮定すると、ソケットを時々照会でき、メソッドisClosed()およびisConnected()を提供します。
ソケットI/Oの処理方法によって異なります
たとえば、セレクター(java.nio)を使用して一連のソケットで非ブロッキングI / Oを実行している場合、次にselect()を呼び出したときに切断が発生したかどうかを確認します。
たぶん、あなたがソケットをどのように扱っているかであなたの質問を更新したなら?