私は、クライアントがサーバにメッセージを送信してから、サーバが応答するのを5秒間待つ(仮定する)アプリケーションを作成しています。返信メッセージがなければ、もう一度やり直します。サーバがメッセージで応答すると、クライアントはそれを処理します。これはループで続き、いつか後に再び起こります。JAVA:ソケットsetSoTimeoutを使用するのはいつですか?
クライアントソケットでsetSoTimeout(時間)を使用することを考えていましたが、javadocとインターネット上で多くの説明を読んだ後、このアプローチが正しいかどうか混乱しています。
私は、インターネット上で読む何
私はソケットにsetSoTimeoutを使用する場合、それは、接続が確立する必要のある期間のタイムアウトを与え、それはそれを確立されていない場合は(1)指定された時刻に接続を確立しようとします。
(2)ソケットでsetSoTimeoutを使用すると、指定された時間間隔で受信メッセージを待機し、メッセージが受信されない場合は待機しません。
私の質問がある -
(1)上記のどちらが本当ですか?
(2)2番目のステートメントが真であれば、実装に使用できますか?
(3)2番目のステートメントが真の場合、タイムアウトタイマーはいつ正確に開始されますか?ソケットを宣言してタイムアウト時間を設定するのはいつですか?それともメッセージを送信するのですか?
いずれかの説明が私のケースに当てはまらない場合は、クライアント側で一定の時間間隔をおいて返信する必要がありますか?返事が来たら、私はそれを処理し、同じプロセスをやり直すべきです。返事が来なければ、私は先に進み、プロセス全体をやり直すべきです。