gethostbynameが休止状態からの復帰後のローカルホスト名のために失敗した(Vistaの+ 7?)
-
23-09-2019 - |
質問
誰がこの発見した場合にだけ思っています:
を私たちのソフトウェアを実行している一部のユーザーのマシンでは、時折のWin32のwinsock gethostbyname
への呼び出しがエラーコード11004で失敗します。
のgethostbynameへの引数には、私はgethostname
からの結果を渡しています。
今すぐドキュメントは11004がWSANO_DATAであると言います。記述のいずれも関連すると思われるん(あなたがIP6アドレスを渡した場合、それが発生したが、私が言うように、私は、ホスト名を渡しています)。
さらに興味深いのMSDNは、この組み合わせ(gethostname
続いgethostbyname
は)何のIPアドレスは、(その場合にはそれだけでIPの空のリストを返す)がないではない場合でも、失敗することはありませんことを示唆しているということです。ここではgethostname MSDNのエントリからの引用があります:
...返される名前が正常にgethostbynameとWSAAsyncGetHostByNameによって解析されることが保証されます。
これはしか起き休止状態からの復帰後、ネットワークが再起動された短期間で、かつ唯一のVista上/ 7(だけでなく、私が唯一のVistaと7でそれを見てきました)。
私が持っていた一つの理論は、それがIP6に関連するということでした。たぶん、短い期間のためにネットワークがIP6アドレスではなくcorresponging IP4アドレス(私はすべてのクライアントマシンは、デュアルIPスタックであることをかなり確信しているが、私は間違っている可能性が)。
をレポート私は(何のIPアドレスを強制しないように)私のネットワークカードをオフにすることで再現してみましたし、再現することができませんでした。
この前に見て誰ですか?
任意のアイデア?
ジョン
解決
私は、あなたがエッジケースにかまれたと思います。
その正確な状態にPCを復元し、何事もなかったかのように続け - Hibernateのような何かをやって一日の終わりには、は、高度なものです。ザッツすべてが順調といいますが、いくつかのものは、このような返事を期待任意のネットワーク接続として、生き残っていないだろう、と任意の真剣低レベル-あなた-can'tセット・ミー読み取り専用-meがで登録しますCPUます。
私は、Microsoftに連絡し、彼らはこのことについて知っていればそれらを求める示唆しています。それは他のOSで動作している場合、彼らは最も可能性の高い7 / Vistaのためにそれを固定に興味があるでしょう。彼らは広告無限にそれをテストできるようにするだけのバイナリに手に調製されています。