bool NET_AcceptClient(NET_Server *server, NET_StreamSocket **client_stream);
| NET_Server * | server | 保留中の接続をチェックするサーバオブジェクト |
| NET_StreamSocket ** | client_stream | 保留中の接続がある場合, 新しいソケットが代入される. それ以外のときNULLが代入される |
クライアントがサーバに接続すると, その接続はサーバがacceptするまでは保留となる. acceptされると, サーバにはクライアントとの通信のためのストリームソケットが与えられ, 双方がデータの送信と受信を行えるようになる.
NET_CreateClientとは異なり, サーバのacceptは接続の最終段階であるため, この関数が戻したストリームソケットは既に接続されており, 接続の完了を待つ必要はない.
この関数はブロックしない.
保留中の新しい接続がない場合, この関数は真を戻す(成功するが*client_streamにはNULLが代入される. これはエラーではなく, アプリケーションにとって通常の状態である. 実際には, この関数はこの状態になるまで呼び出してループし, 全ての保留中の接続を1回のバッチでacceptするべきである).
新しい接続があるまでサーバを待たせたい場合は, NET_WaitUntilInputAvailable()を使用すること.
新しくacceptしたクライアントとのやり取りが終わったならば, NET_DestroyStreamSocket()でストリームソケットを切断し破棄すること.
同じソケットを複数のスレッドから同期を行わずに使用してはならない. しかし, 異なるスレッドから別々のソケットに同時にアクセスすることは問題ない.