目次 - 3.関数 - 3.4UDPソケット - SDLNet_UDP_Bind

SDLNet_UDP_Bind

int SDLNet_UDP_Bind(UDPsocket sock, int channel, IPaddress *address)

sock
アドレスと結びつけるUDPsocket
channel
アドレスを割り当てるチャネル. この値はSDLNET_MAX_UDPCHANNELS未満である必要がある. -1のとき最初のバインドされていないチャネルが使われるが, SDLNET_MAX_UDPADDRESSES未満のアドレスが割り当てられた最初のチャネルを検索するため, これは到達したパケットのフィルタとしてのみ使われるべきである.
address
ソケットのチャネルに割り当てる解決されたIPaddress. ホストとポート番号の両方が使われる. 0.0.0.0とチャネルをバインドすることはできない.

アドレスをソケットのチャネルとバインドする. 到達したパケットは, ソケットのチャネルにバインドされたアドレスのみ許可される. このチャネルから出て行く全てのパケットは, パケット内のアドレスに関わらず, チャネルにバインドされたそれぞれのアドレスに送信されようとする. それぞれのチャネルには最大SDLNET_MAX_UDPADDRESSESのアドレスを割り当てることができる.

戻り値: バインドされたチャネル番号. 空きチャネルがない, 既にSDLNET_MAX_UDPADDRESSESのアドレスが割り当てられている, チャネル番号がSDLNET_MAX_UDPCHANNELS以上など失敗のとき-1以下

サンプルコード

// アドレスと最初の空きチャネルをバインドする
//UDPsocket udpsock;
//IPaddress *address;
int channel;

channel=SDLNet_UDP_Bind(udpsock, -1, address);
if(channel==-1) {
    printf("SDLNet_UDP_Bind: %s\n", SDLNet_GetError());
    // ここでバインドに失敗したときの処理をおこなう
}

参照

SDLNet_UDP_Unbind, SDLNet_UDP_GetPeerAddress, SDLNet_UDP_Open, IPaddress, UDPsocket

原文へのリンク

3.4.3 SDLNet_UDP_Bind