ネットワークプログラムについて質問です。

詳しい環境はかけませんが
何か原因を探る手がかりなどあれば教えて下さい。

UDPにて存在しないホストにSendToしました。
ErrNo=65 ehostunreach ホストに到達不能である
というエラーが発生します。

これは正しいのですが
20msぐらいの速度で送信を繰り返すと20秒程度で
突然正常が返ります。
もちろんErrNoも設定されません。

3秒後ぐらいに再度ErrNo=65の状態に戻ります。
何か考えられる原因はありますでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/12/28 23:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:tamtam3 No.1

回答回数345ベストアンサー獲得回数20

ポイント60pt

お使いの機種のマシンスペックがわかりませんが

パケットロスに起因する内容かと思われます

http://www.kt.rim.or.jp/~ksk/wskfaq-ja/intermediate.html#udpbad

データグラムの喪失は、送信側あるいは受信側のプロトコルスタック内部で発生することもあります。たいていはバッファが足りなくなった場合などです。さらに、同じマシン上で動作する二つの通信プログラムでさえも、 UDPを使っている場合はデータを喪失してしまう可能性があります。(Windows 上では、高負荷の状態において実際にこれが発生します。スタック内のバッファが一杯になるとデータグラムが落とされるからです。) これはつまり、ローカルの IPC(訳注: プロセス間通信) の機能として UDP を利用するのは限度がある、ということです。

これら、いずれの原因で喪失が発生した場合でも、送信側および受信側には何の通知もされません。喪失がプロトコルスタック内部で発生した場合であっても、です。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 「営業マンはお客様に好かれなさい」 ネット販売のインフォカート最新情報 2006-12-22 03:41:11
    □ 「どうすれば売れるのか?」は売れなくなる呪文 □ 営業に関する考え方を変える □ お客は誰から買っているのか観察する □ お客様の好意なくして、継続なし □ ホストに学ぶお客
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません