目次 - SDL_net 3.0 - NET_GetLocalAddresses

NET_GetLocalAddresses

システムのローカルアドレスの一覧を得る

ヘッダ

SDL3_net/SDL_net.h

構文

NET_Address **SDLCALL NET_GetLocalAddresses(int *num_addresses);

引数

int *num_addressesこの関数から戻ったときアドレスの数がここに代入される. NULLも可

戻り値

(NET_Address **) NULL終端のそれぞれがシステムのバインド可能なアドレスのNET_Addressの配列へのポインタを戻す. エラーのときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

この関数は, 別マシンからの接続を受け入れるために, ソケットに理論的にはバインドできるアドレスの一覧を戻す.

ほとんどの場合, この関数は必要ない. 第1に, ユーザに選択させずにどのアドレスにバインドするのがよいかを知ることは難しい(同様にユーザにも難しい). 第2に, ほとんどにはマシンは多くの同じLAN上の受け入れられるプライベートアドレスがあるが, 外部のインターネットから受け入れられるパブリックなアドレスではない.

通常は, NET_CreateServer()またはNET_CreateDatagramSocket()にNULLアドレスを渡して「全てのインターフェースをバインドする」方がよい.

この関数が戻したアドレスの配列はNULL終端であることが保証されている. さらに引数として配列の終端のNULLを含まないアドレス数が代入されるintポインタを渡すことができる.

戻された配列が不要になればNET_FreeLocalAddressesに渡し解放すること. 解放した後でも, この配列から得たアドレスはNET_RefAddress()を呼んでいれば使用できる.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL_net 3.0.0以降

SDL Wikiへのリンク

SDL3_net/NET_GetLocalAddresses