詳しい環境はかけませんが
何か原因を探る手がかりなどあれば教えて下さい。
UDPにて存在しないホストにSendToしました。
ErrNo=65 ehostunreach ホストに到達不能である
というエラーが発生します。
これは正しいのですが
20msぐらいの速度で送信を繰り返すと20秒程度で
突然正常が返ります。
もちろんErrNoも設定されません。
3秒後ぐらいに再度ErrNo=65の状態に戻ります。
何か考えられる原因はありますでしょうか?
お使いの機種のマシンスペックがわかりませんが
パケットロスに起因する内容かと思われます
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/intermediate.html#udpbad
データグラムの喪失は、送信側あるいは受信側のプロトコルスタック内部で発生することもあります。たいていはバッファが足りなくなった場合などです。さらに、同じマシン上で動作する二つの通信プログラムでさえも、 UDPを使っている場合はデータを喪失してしまう可能性があります。(Windows 上では、高負荷の状態において実際にこれが発生します。スタック内のバッファが一杯になるとデータグラムが落とされるからです。) これはつまり、ローカルの IPC(訳注: プロセス間通信) の機能として UDP を利用するのは限度がある、ということです。
これら、いずれの原因で喪失が発生した場合でも、送信側および受信側には何の通知もされません。喪失がプロトコルスタック内部で発生した場合であっても、です。
コメント(0件)