문제

기계의 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 서버가 해당 주소에서만 듣고 있지만 다른 주소는 그렇지 않다는 것을 의미합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top