ローカルホストアドレスの解決
int WSAAPI getaddrinfo (
const char FAR* nodename,
const char FAR* servname,
const struct addrinfo FAR* hints,
struct addrinfo FAR** res
);
パラメータ
nodename
- [in] 数値形式のネットワークアドレス(IPv4ならドット区切り10進数形式、IPv6なら16進数形式)または、ネットワークホスト名(アドレス検索され名前解決が行われる)を指定。通常はNULLを指定(この場合AI_PASSIVE フラグに基いて初期化される)
servname
- [in] ポート番号を指定する。NULLを指定した場合、ポート番号の初期化はしない。
hints
- [in] addrinfo構造体へのポインタを指定
res
- [out] リンクリストへのポインタを指定(addrinfo構造体のポインタのポインタ)
説明
getaddrinfo()はIPv6化には必須関数であり、IPv4/IPv6両対応とすることができる。
- パラメータnodename・servnameにはNULLを指定できるが、両方をNULLにすることはできない
- hints.ai_flagsにAI_NUMERICHOST フラグが含まれている場合パラメータnodenameには数値形式のネットワークアドレスを指定しなければならない。
- リンクリストはhints.ai_nextでリンクされている
Example
// getaddrinfo()
// ローカルホストアドレスの解決
//--------------------------------------
iResult = getaddrinfo(NULL, "27015", &hints, &result);
if (iResult != 0) {
printf("getaddrinfo failed x(: %d\n", iResult);
WSACleanup();
return 1;
}
printf("getaddrinfo success\n");