GUI とデータベースに基づいて、Java を使用してマルチクライアント サーバー プログラムを開発しています。クライアント側からのプログラムに関する要求は、サーバーへの接続が常に存在することを確認することであり、接続が失われた場合 (サーバーがダウンしたり、ソケットまたはストリームに問題が発生した場合) は通知する必要があります。
つまり、サーバーへの接続を継続的にチェックするためのソリューションが必要です。
それを行う最善の方法は何ですか?
TCP/IPにはそのようなAPIはありません。TCPで接続障害を検出する唯一の方法は、TCPを使用することです。プロトコルにハートビートを追加することを検討することもできますが、クライアント側の担当者と一緒に要件を確認することをお勧めします。TCP / IPには、設計上「ダイヤルトーン」がなく、アプリケーションレベルでダイヤルトーンを追加することは重要であり、エラーが発生しやすく、時間とスペースのオーバーヘッドが発生します。
ハートビートプロトコルを実装します。
あなたがそれを何をすべきかわからない場合は、接続リスナースレッドを使用することができます
Socket.isConnected
ソケット接続が閉じているかどうかを確認します。
if(Socket.isClosed()) {
//reconnect or alert the user
} //end if