他の誰かがこれを見つけたかどうか疑問に思っています:
当社のソフトウェアを実行している一部のユーザーのマシンでは、Win32winsockの呼び出しgethostbyname
がエラーコード11004で失敗することがあります。
gethostbynameの引数として、からの結果を渡しgethostname
ます。
現在、ドキュメントには11004がWSANO_DATAであると記載されています。説明はどれも関連性がないようです(IP6アドレスを渡すと発生しますが、私が言うように、ホスト名を渡します)。
さらに興味深いのは、MSDNが、IPアドレスがない場合でも(この場合はIPの空のリストを返すだけです) 、この組み合わせ(gethostname
後に続く)が失敗しないように提案していることです。gethostbyname
gethostnameMSDNエントリからの引用は次のとおりです。
...返された名前がgethostbynameおよびWSAAsyncGetHostByNameによって正常に解析されることが保証されています。
これは、休止状態から再開した後、ネットワークが再起動している短い期間に、Vista / 7でのみ発生します(Vistaと7でのみ見たことがあります)。
私が持っていた1つの理論は、それがIP6に関連しているというものでした。おそらく短期間、ネットワークはIP6アドレスを報告しますが、対応するIP4アドレスは報告しません(すべてのクライアントマシンがデュアルIPスタックであると確信していますが、間違っている可能性があります)。
ネットワークカードをオフにして(IPアドレスを強制しないように)再現しようとしましたが、再現できませんでした。
これを見た人はいますか?
何か案は?
ジョン