目次 - 3.関数 - 3.6ソケットセット - SDLNet_CheckSockets

SDLNet_CheckSockets

int SDLNet_CheckSockets(SDLNet_SocketSet set, Uint32 timeout)

set
チェックするソケットセット
timeout
待ち時間(ミリ秒). 0のとき待たない. -1は49日(おそらく)以上待つ!

ソケットセット内の全てのソケットが活動中かチェックする. 0でないtimeoutを渡したならば, この関数は活動を待ち, 活動がなければtimeoutミリ秒経過するのを待つ.

メモ: 「活動中」には切断中や他のエラーも含まれる. これらは読み込み/書き込みの失敗でわかる.

戻り値: 活動中のソケットの数. 失敗のとき-1. このとき意味のあるエラーメッセージは得られない. ソケットセットが空(チェックすべきものがない)のときも-1

サンプルコード

// 1秒間ソケットの活動をチェックする
//SDLNet_SocketSet set;
int numready;

numready=SDLNet_CheckSockets(set, 1000);
if(numready==-1) {
    printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
    // ほとんどの場合これはシステムエラーである. perrorがユーザの助けになるだろう
    perror("SDLNet_CheckSockets");
}
else if(numready) {
    printf("%d つのソケットが活動中!\n",numready);
    // 全てのソケットをSDLNet_SocketReadyでチェックし, 活動中のものを数える
}

参照

SDLNet_SocketReady, SDLNet_AddSocket, SDLNet_DelSocket, SDLNet_AllocSocketSet, SDLNet_SocketSet, UDPsocket, TCPsocket

原文へのリンク

3.6.5 SDLNet_CheckSockets