8

ホスト解決をブロックするためのgetaddrinfo()ものがありますが、非ブロック方法はありますか?

4

4 に答える 4

3

そのようなことはないと思いますが、いつでもスレッドでラップし、セマフォを使用して完了を通知できます。

于 2011-08-09T15:06:14.800 に答える
3

Linuxにはgetaddrinfo_a()。StackOverflowタグgetaddrinfo-aを参照してください。たとえば、この質問「getaddrinfo_aを使用してglibcで非同期解決を行う方法」などです。しかし、これはWindowsには当てはまらないと思います。

非同期DNS要求用のクロスプラットフォームライブラリc-aresがあり、これはWindows上で実行されることを示しています。(私はそれを自分で試していません。)

于 2013-01-10T23:03:17.853 に答える
3

GetAddrInfoExのMSDNページから、OVERLAPPEDパラメーターは次のように述べています。

Windows7およびWindowsServer2008 R2以前では、このパラメーターは現在予約されており、非同期操作はサポートされていないため、 NULLに設定する必要があります。

OVERLAPPEDつまり、この機能はWindows8以降でのみ使用できます。スティーブが古いバージョンのウィンドウで動作することを別の方法で示すことができない限り...

于 2013-07-26T23:18:02.237 に答える
0

WindowsVistaおよびWindowsServer2008から、OVERLAPPED構造でGetAddrInfoExを使用できます。

hEventイベントがOVERLAPPED構造体に設定されたら、GetAddrInfoExOverlappedResultを使用します。

于 2013-01-11T00:02:53.777 に答える