目次 - SDL_net 3.0 - NET_GetConnectionStatus

NET_GetConnectionStatus

ブロックせずにソケットが接続したかチェックする

ヘッダ

SDL3_net/SDL_net.h

構文

NET_Status NET_GetConnectionStatus(NET_StreamSocket *sock);

引数

NET_StreamSocket *sock問い合わせるソケット

戻り値

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

詳細

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

この関数はブロックせずに処理の状態をチェックできる.

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

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

接続に成功しその後で切断した場合でも, この関数は非同期処理による最初の接続のみを扱うため接続成功を戻すので注意すること. 接続後の切断は読み込みと書き込みの失敗で知ることになる.

スレッドセーフ

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

バージョン

SDL_net 3.0.0以降

関連項目

SDL Wikiへのリンク

SDL3_net/NET_GetConnectionStatus