
JavaでSocket通信している状態で、物理LANを抜いたりして通信異常状態を起こしても、すぐには通信異常と検知できないようで、一定期間してからSocketExceptionなどを検知します。
現在、クライアントとサーバで常に受信し続け、各々で1秒毎にSocketでメッセージを相互に送っております。
その間で物理LANを抜いても、一定期間は送信しつづけるように見え(実際受信はされていない)、
一定時間を超えると、上記のようにSocketExceptionで例外検知します。
上記のようにSocket通信で通信異常状態の場合には即検知することは無理なのでしょうか?
No.1ベストアンサー
- 回答日時:
はい。
通信経路全体をなにか特別な装置で監視するような仕組みでも
あれば話は別ですが、普通は、通信経路のどこかのLANケーブルが
抜けたからといってすぐにはSocketExceptionは検出されません。
通信経路は、一時的なパケットの紛失が発生する前提で作られて
おり、TCPプロトコルの中には紛失したパケットを再送する機能が
あります。これにより、一時的にLANケーブルが抜けても、
すぐにつなぎ直せば何事もなかったかのように、通信が継続できる
メリットがあります。簡単には障害にしないよう頑張っているということです。
つまり、この再送タイムアウトが発生するまで障害検出されません。
この時間を短くすることは、
http://support.microsoft.com/kb/170359/ja
のように設定変更で可能ですが、他のアプリケーションにも
影響しますので、アプリケーションの都合で変更するのは
お勧めしません。(これはネットワーク環境に応じて変更するものです)
自分のアプリケーションの都合で早めに障害検出をしたい場合は、
1秒毎にSocketでメッセージを相互に送っているとのことですから、
そのメッセージを一定時間以内に受信しなかったら障害とするよう、
自分が必要とする時間でパケットの受信をタイマ監視する処理を
追加すればよいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(インターネット接続・インフラ) インターネットにつながっているかを、常時確認したい。 7 2023/02/22 08:57
- ガラケー・PHS SMSメールの受信遅延原因はガラケー自体の欠陥では 8 2022/08/06 11:46
- FTTH・光回線 AU光回線の速度が出ません 2 2022/07/30 16:05
- 工学 下記のひろゆきの主張をどうみますか? 9 2023/02/20 14:10
- デスクトップパソコン 古ーいパソコン/Atheros AR2181 PCIe Gigabit LAN コントローラー 7 2022/09/07 12:58
- スピーカー・コンポ・ステレオ オンキョーアンプA819RSのバイアス電圧が信号入力時に大きく変動する。(Rチャンネルのみ) 2 2022/10/21 13:31
- その他(SNS・コミュニケーションサービス) スマホの無料通話(ビデオ通話)について 現在LINEを主で無料通話をしておりますが、LINEが不安定 1 2022/12/12 21:53
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- 事件・犯罪 酒酔い運転検挙 1 2022/04/20 22:22
- 車検・修理・メンテナンス 車検業者を変えるべきでしょうか・・ 18 2022/10/24 15:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
VB6のwinsockでconnectできない
-
UDP通信する時に、相手にどうや...
-
ソケットのクローズについて
-
WinSockでの通信プログラムがう...
-
closeされたsocketへの動作につ...
-
POP3S
-
送信したデータの一部が文字化...
-
ソケットのrecvの戻り値が0
-
ソケット通信
-
VC++でのソケット通信について
-
VBとCでのソケット通信について
-
【ajax】 XMLHttpRequestオブジ...
-
エクセル VBA でのCOMポート...
-
UDPの宛先ポートと送信元ポート...
-
Winsockで接続待ちタイムアウト...
-
ソケットを用いた1対多通信につ...
-
recv関数でフリーズしてしまう
-
Macターミナルで実行中のプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
Winsockで接続待ちタイムアウト...
-
UDP通信する時に、相手にどうや...
-
エクセル VBA でのCOMポート...
-
Socket通信の0バイト受信について
-
VB6のwinsockでconnectできない
-
ソケットでクライアントのipア...
-
ソケットを用いた1対多通信につ...
-
ソケットのクローズについて
-
ソケットのrecvの戻り値が0
-
UdpClient 送信元のIPアドレ...
-
相手のIPアドレスを取得する方法
-
recv関数でフリーズしてしまう
-
closeされたsocketへの動作につ...
-
送信したデータの一部が文字化...
-
UDP通信(SNMP)したいが、うま...
-
ソケット通信
-
Connectエラーが出てしまう・・...
-
WinSockでの通信プログラムがう...
おすすめ情報