内容
GetAddrInfoの動作について
(1) 以下のコードのようにGetAddrInfoにおいて指定された*pHintsを元に**pResが返ってくるのだと思いますがいろいろ試してもAF_INETやAF_NETBIOSは返ってくることはあってもAF_INET6は返ってきません
これはサーバー側がIPv6よりIPv4を優先していたりIPv6が使えなかったりするということでしょうか
AF_INET6としていた方が構造体がIPv4 IPv6両方のアドレスを受け取れると思うのですがGetAddrInfoの応答通り処理した方が良いのでしょうか?
(2) NetBIOSでの通信を私はあまり聞いたこと無いのですが普通はIPでの接続だけ十分でしょうか?
(3) そもそもGetAddrInfoなどによる名前解決にはsocketの確立等をしなくてもできることなのですか?
該当のソースコード
C
1ADDRINFOW addrHints; 2SecureZeroMemory(&addrHints, sizeof(ADDRINFOW)); 3ADDRINFOW* addrRes = nullptr; 4 5//addrHints.ai_family = AF_INET6; 6//addrHints.ai_socktype = SOCK_STREAM; 7//addrHints.ai_flags = AI_PASSIVE; 8 9GetAddrInfoW(L"~~~~~~~.com", L"80", &addrHints, &addrRes); 10 11int count = 0; 12ADDRINFOW* tmpadd = addrRes; 13 14while (1) 15{ 16 printf("[%d] ai_flags : %8x\n", count, tmpadd->ai_flags); 17 printf("[%d] ai_family : %8x\n", count, tmpadd->ai_family); 18 printf("[%d] ai_socktype : %8x\n", count, tmpadd->ai_socktype); 19 printf("[%d] ai_protocol : %8x\n\n", count, tmpadd->ai_protocol); 20 21 if (tmpadd->ai_next == nullptr)break; 22 else tmpadd = tmpadd->ai_next; 23 24 count++; 25}
補足情報
Windows10 Pro
VisualStudio2019 Community
追記
AF_INET6がどうしても返ってこないと記しましたが
ai_familyから返ってくる0x17をNetBIOSの0d17と勘違いしていました.
0x17つまり0d23でAF_INET6のファミリーも取得できていました.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。