目次 - SDL_net - API(機能別) - UDPパケット
UDPパケット
これらの関数はUDPソケットを扱う.
UDPは接続しない. しかし, それを望まないのであれば, 外へ行く全てのパケットに行き先を指定する必要がないという意味では接続したとして扱える.
これはソケットと, IPアドレスとポート番号の組み合わせをバインドすることで実現する.
UDPは届く保障はなく, 全てのパケットは相手に届かない可能性がある.
また, UDPパケットの受信順は送信順と一致しない.
これらの問題は速度との引き換えである.
UDPはTCPよりも速いため, 状態を繰り返し送信する多くのゲームやスピードが必要なアプリケーションでは, UDPがよく使われる.
SDL_netにはチャネルの概念があり, 特定のクライアント同士のパケットを簡単に合わせる助けになる.
このチャネル番号はUDPパケットデータとしては転送されない. しかし, UDPパケットの送受信ではチャネル番号はIPaddressによる送受信先の参照の代わりに使われる.
チャネルを使わないこともできる.
SDL_netではこれらは便利な選択肢にすぎない.
一般
- SDLNet_UDP_Open - UDPソケットを開く
- SDLNet_UDP_Close - UDPソケットを閉じる
チャネルバインド
- SDLNet_UDP_Bind - アドレスをUDPソケットのチャネルにバインドする
- SDLNet_UDP_Unbind - 指定のチャネルの全てのアドレスとのバインドを解除する
- SDLNet_UDP_GetPeerAddress - ソケットとチャネルにバインドされたリモートシステムのIPアドレスを得る
単一UDPパケット
- SDLNet_UDP_Send - 指定のチャネルから1パケットを送信する
- SDLNet_UDP_Recv - UDPソケットから1パケットを受信する
複数UDPパケット(配列)
- SDLNet_UDP_SendV - 複数のパケットをパケットごとに指定されたチャネルに送信する
- SDLNet_UDP_Recv - UDPソケットから複数のパケットを受信する
テスト
- SDLNet_UDP_SetPacketLoss - パケットの損失率を設定する