目次 - 3.関数 - 3.4UDPソケット
3.4 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 - IPアドレスとソケットチャネルを結びつける
- SDLNet_UDP_Unbind - ソケットチャネルに結びつけた全てのIPアドレスを削除する
- SDLNet_UDP_GetPeerAddress - ソケットチャネルに結びつけたIPアドレス, または開いたソケットのポート番号を得る
単一UDPパケット
- SDLNet_UDP_Send - UDPpacketを送信する
- SDLNet_UDP_Recv - UDPpacketを受信する
複数UDPパケット(配列)
- SDLNet_UDP_SendV - UDPpacket配列を送信する
- SDLNet_UDP_RecvV - UDPpacket配列を受信する
テスト
- SDLNet_UDP_SetPacketLoss - パケットの損失率を設定する
原文へのリンク
3.4 UDP Sockets