目次 - 3.関数 - 3.2名前解決 - SDLNet_ResolveHost

SDLNet_ResolveHost

int SDLNet_ResolveHost(IPaddress *address, const char *host, Uint16 port)

address
アドレスが代入されるポインタ. 呼ばれる前は何も設定されていなくてよいが, メモリが確保されている必要がある
host
サーバに接続するためのホスト名またはIPアドレスの文字列. サーバになる場合はNULL. NULLのとき, 全てのネットワークインターフェースは接続のためにINADDR_ANYを使ってLISTEN状態になる
port
サーバに接続する場合はサーバがLISTENしているポート番号. サーバになる場合はLISTENするポート番号. この関数を単なるドメイン名解決として使う場合は0にできる

文字列hostを解決し, 解決されたIPとポート番号portをIPaddress構造体のポインタに代入する. これがIPaddress構造体を設定する最もよい方法である. この関数はあらゆるソケットを実際に開くことはない. ソケットを開く関数の引数の準備のために使われる.

注意: この関数はhostとportをaddressのフィールドにネットワークバイト順で書き込む. 引数はシステムのバイト順で渡さなければならない. (これが問題になることはあまりない.)

戻り値: 成功のとき0, アドレスが解決できないなど失敗のとき-1で, address.hostにINADDR_NONEが代入される.

サンプルコード

ポート1234の全てのインターフェースでLISTENする:

// ポート1234のサーバのIPaddressを生成する
IPaddress ipaddress;
SDLNet_ResolveHost(&ipaddress, NULL, 1234);

"host.domain.ext"のポート1234に接続するクライアント:

// ホスト名"host.domain.ext"のポート1234のIPaddressを生成する
// これはクライアントで使われる
IPaddress ipaddress;
SDLNet_ResolveHost(&ipaddress, "host.domain.ext", 1234);

参照

SDLNet_ResolveIP, IPaddress

原文へのリンク

3.2.1 SDLNet_ResolveHost