4

バインドしたソケットがリッスンしているマシンのIPを取得しようとしています。印刷されたポート番号は正常に機能しますが、アドレスは「0.0.0.0」です。関連するコードは次のとおりです。このコードに到達する前にres渡されましたgetaddrinfogetsockname

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;

何が間違っている可能性がありますか?

4

1 に答える 1

6

のアドレスは0.0.0.0、ソケットがすべてのアドレスをリッスンしていることを意味します。のような特定のアドレス127.0.0.1は、サーバーがそのアドレスをリッスンしているだけで、他のアドレスはリッスンしていないことを意味します。

于 2009-06-25T15:46:01.603 に答える