我正试图让机器的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 :(得分:6)
0.0.0.0
的地址表示套接字正在侦听所有地址。像127.0.0.1
这样的特定地址意味着服务器只是在监听该地址,而不是在任何其他地址上。