目次 - SDL_net - API(機能別) - UDPパケット - SDLNet_UDP_Send

SDLNet_UDP_Send

指定のチャネルから1パケットを送信する

構文

int SDLNet_UDP_Send(UDPsocket sock, int channel, UDPpacket *packet)

引数

sockパケットを送信するUDPソケット
channelパケットを送信するチャネル
packetネットワークに送信するパケット

戻り値

パケットを送信したとき1, エラーのとき0を戻す.

詳細

チャネルが-1の場合, パケットはパケット上の`src`メンバのアドレスに送られる.

パケットを送信すると, パケットは送信後の状態に更新される.

**注意**: UDPは「信頼できないプロトコル」であり, あなたのマシンから正常に送信したことが報告されても, 途中でルーターがパケットをドロップして相手に到達しない場合がある. それが発生した場合は――そしてそれはインターネット上では通常発生しうる――パケットが到着しなかったことを知ることができない. さらに, パケットは送信とは別の順序で相手に送られる場合がある. そのことを考慮すること.

**注意**: パケットの最大サイズは通信媒体のMTU(Maximum Transfer Unit, 最大送信単位)によって制限される. PPPリンクでは250バイト以下, イーサネットでは1500バイト以上になりうる. サイズが異なる場合でも送信できるが, システムは背後で複数のフラグメントに分割するため, 受信側で再構築する必要がある. (さらに通信中にフラグメントが1つでも失われるとパケットが失われる.) よって, 1パケットの送信量が少ないほど信頼性が高まり遅れが少なくなる.

バージョン

SDL_net 2.0.0以降

SDL Wikiへのリンク

SDL2_net/SDLNet_UDP_Send