NET_Status NET_WaitUntilResolved(NET_Address *address, Sint32 timeout);
| NET_Address * | address | 解決を待つNET_Addressオブジェクト |
| Sint32 | timeout | 解決の完了まで待つ時間(ミリ秒). -1のとき無限に待つ. 0のとき待たずにチェックする |
NET_ResolveHostnameが戻したNET_Addressオブジェクトの解決には時間がかかるため, 処理はアプリケーションがどれだけかかるかわからない時間を待つのではなく非同期に行われる.
しかし, アドレスの解決が完了するまでプログラムを待たせたい場合は, この関数を使用することができる.
この関数は解決の完了までどれだけ待つかのミリ秒単位のタイムアウト時間を引数とする. タイムアウト時間に-1を指定すると無限に待ち, 0を指定すると現在の状態をチェックして即座に戻る(これは機能的にはNET_GetAddressStatusと同等である).
時間がかかった後で解決が失敗することもあるため(ホスト名が解決しなかったことをDNSサーバが応答するまで時間がかかった等), 成功したとみなさずに必ず結果をチェックすること.
解決に成功した後は, このアドレスのホストに接続するために使用できる.
プログラムをブロックしたくない場合は, NET_GetAddressStatusを0以外を戻すまで定期的に呼び出すこと.
この関数はどのスレッドからも安全に呼べるが, 複数のスレッドで同一のアドレスに使用すると同時にブロックする場合がある.