BSD套接字问题:inet_ntop返回“0.0.0.0”

时间:2009-06-25 15:42:52

标签: c++ c sockets inet-socket

我正试图让机器的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;

可能出现什么问题?

1 个答案:

答案 0 :(得分:6)

0.0.0.0的地址表示套接字正在侦听所有地址。像127.0.0.1这样的特定地址意味着服务器只是在监听该地址,而不是在任何其他地址上。