目次 - SDL_net 3.0 - NET_WaitUntilConnected

NET_WaitUntilConnected

ストリームソケットがサーバと接続するまで待つ

ヘッダ

SDL3_net/SDL_net.h

構文

NET_Status NET_WaitUntilConnected(NET_StreamSocket *sock, Sint32 timeout);

引数

NET_StreamSocket *sock接続を待つNET_StreamSocket
Sint32timeout接続の完了まで待つ時間(ミリ秒). -1のとき無限に待つ. 0のとき待たずにチェックする

戻り値

(NET_Status) 接続に成功したときNET_SUCCESS, 接続に失敗したときNET_FAILURE, 接続中のときNET_WAITING(接続が完了する前にタイムアウトした)を戻す. NET_FAILUREの場合, SDL_GetError()を呼んで詳細を知ることができる.

詳細

NET_CreateClientが戻したNET_StreamSocketオブジェクトの接続には時間がかかるため, 処理はアプリケーションがどれだけかかるかわからない時間を待つのではなく非同期に行われる.

しかし, 接続が完了するまでプログラムを待たせたい場合は, この関数を使用することができる.

この関数は接続の完了までどれだけ待つかのミリ秒単位のタイムアウト時間を引数とする. タイムアウト時間に-1を指定すると無限に待ち, 0を指定すると現在の状態をチェックして即座に戻る(これは機能的にはNET_GetConnectionStatusと同等である).

時間がかかった後で接続が失敗することもあるため(サーバの応答に時間がかかり, さらに接続を拒否された場合など), 成功したとみなさずに必ず結果をチェックすること.

接続に成功した後は, このソケットを接続したサーバからのデータの読み込みとサーバへのデータの書き込みのために使用できる.

プログラムをブロックしたくない場合は, NET_GetConnectionStatusを0以外を戻すまで定期的に呼び出すこと.

スレッドセーフ

同じソケットを複数のスレッドから同期を行わずに使用してはならない. しかし, 異なるスレッドから別々のソケットに同時にアクセスすることは問題ない.

バージョン

SDL_net 3.0.0以降

関連項目

SDL Wikiへのリンク

SDL3_net/NET_WaitUntilConnected