BSDソケットの問題:INET_NTOP「0.0.0.0」を返します
-
20-08-2019 - |
質問
マシンのIPを取得しようとしています。バインドしているソケットが聞いています。印刷されたポート番号は正常に機能しますが、アドレスは「0.0.0.0」です。関連するコードは次のとおりです。 res
に渡されました getaddrinfo
と getsockname
このコードに到達する前に。
char ip[INET_ADDRSTRLEN];
struct sockaddr_in *ipv4 = (struct sockaddr_in *)res->ai_addr;
void* addr = &(ipv4->sin_addr);
inet_ntop(res->ai_family, addr, ip, sizeof ip);
std::cout << "SERVER_ADDRESS " << ip << std::endl;
std::cout << "SERVER_PORT " << ipv4->sin_port << std::endl;
何が間違っているのでしょうか?
解決
のアドレス 0.0.0.0
ソケットがすべてのアドレスで聴いていることを意味します。のような特定のアドレス 127.0.0.1
サーバーがそのアドレスで聞いているだけでなく、他のアドレスではそうではないことを意味します。
所属していません StackOverflow