2009-11-12 27 views
5

winsockで非同期アドレス解決を調べると、唯一の2つのオプションは、別のスレッドでブロックgethostbynameを使用するか、またはWSAAsyncGetHostByNameを使用するかのようです。後者は、何らかの理由で、重複した操作と完了ポート/ルーチンの代わりに、ウィンドウメッセージで動作するように設計されています。winsockの非同期アドレス解決?

gethostbynameのバージョンは、他のwinsock APIと同様にオーバーラップした操作と非同期で動作しますか?

+1

それは何らかの理由でそのように設計されたのは、スレッドやコンソールモードのプログラムがないWin16の世界でWinsockが作成されたことです(DOSプログラムがありましたが、Winsockへのアクセスはありませんでした。 、またはOSがプログラムに何か起きたことを伝える少なくとも1つのメッセージループ。終了した名前検索の通知tこのメカニズムは、その世界では意味があります。 –

答えて

1

申し訳ありませんが、gethostbyname()の重複バージョンはありません。

3

GetAddrInfoEx()には、通常のルート(IOCPを含む)のすべてを介して非同期操作のためのすべての正しいもののプレースホルダがありますが、最終的には...期待していますが残念ながら、ドキュメントは、これらのすべてがNULLに設定されなければならず、 '予約済み'とマークされていると言います。 :

私はちょうど1つ書き込んでいます(しばらく行っています)... WSAAsyncGetHostByNameは並行して名前解決を許可していないので残念です。また、それはIPv6を扱っていないので、私にとっては役に立たなくなってしまうので、ゼロから始めることを期待しています。

+0

リンク先の2番目のライブラリはGPLです。 –

+0

良い点ウォーレン。私はまだそれをフォローしていない。私は昨夜、グーグルでしかやりませんでした。 –

関連する問題