NET_Status NET_WaitUntilConnected(NET_StreamSocket *sock, Sint32 timeout);
| NET_StreamSocket * | sock | 接続を待つNET_StreamSocket |
| Sint32 | timeout | 接続の完了まで待つ時間(ミリ秒). -1のとき無限に待つ. 0のとき待たずにチェックする |
NET_CreateClientが戻したNET_StreamSocketオブジェクトの接続には時間がかかるため, 処理はアプリケーションがどれだけかかるかわからない時間を待つのではなく非同期に行われる.
しかし, 接続が完了するまでプログラムを待たせたい場合は, この関数を使用することができる.
この関数は接続の完了までどれだけ待つかのミリ秒単位のタイムアウト時間を引数とする. タイムアウト時間に-1を指定すると無限に待ち, 0を指定すると現在の状態をチェックして即座に戻る(これは機能的にはNET_GetConnectionStatusと同等である).
時間がかかった後で接続が失敗することもあるため(サーバの応答に時間がかかり, さらに接続を拒否された場合など), 成功したとみなさずに必ず結果をチェックすること.
接続に成功した後は, このソケットを接続したサーバからのデータの読み込みとサーバへのデータの書き込みのために使用できる.
プログラムをブロックしたくない場合は, NET_GetConnectionStatusを0以外を戻すまで定期的に呼び出すこと.
同じソケットを複数のスレッドから同期を行わずに使用してはならない. しかし, 異なるスレッドから別々のソケットに同時にアクセスすることは問題ない.