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

SDLNet_UDP_SendV

複数のパケットをパケットごとに指定されたチャネルに送信する

構文

int SDLNet_UDP_SendV(UDPsocket sock, UDPpacket **packets, int npackets)

引数

sockパケットを送信するUDPソケット
packetsネットワークに送信するパケットの配列
npackets`packets`配列のパケット数

戻り値

マシンから正常に送信したパケットの数を戻す.

詳細

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

この関数はパケットの配列を入力とするが, SDLNet_AllocPacketV()で確保したものでなくてもよい. 自分で確保した個々のパケットの配列でも可能である.

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

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

バージョン

SDL_net 2.0.0以降

関連項目(関数)

SDLNet_UDP_RecvV

SDL Wikiへのリンク

SDL_net/SDLNet_UDP_SendV