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