We value your feedback.
Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!
struct addrinfo hints, *start, *results; bzero(&hints, sizeof(struct addrinfo)); hints.ai_flags = AI_PASSIVE; // Use address return by getaddrinfo in bind() return addrinfo will have INADDR_ANY set to IPv4 adress and INADDR6_ANY_INIT for IPv6 address hints.ai_family = AF_UNSPEC; // return both the family AF_INET and AF_INET6 address structures hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; getaddrinfo(NULL, "4455", &hints, &results); int fd = socket(results->ai_family, results->ai_socktype, results->ai_protocol); bind(fd, results->ai_addr, results->ai_addrlen);
METHOD 1 ---> This prints Addres = 0.0.0.0 // I believe this is because I have AI_PASSIVE set. struct sockaddr_storage addr; len = sizeof (struct sockaddr_storage); getsockname(fd, (struct sockaddr*)&addr, &len ); struct sockaddr_in *sin = (struct sockaddr_in *)&addr; char str[INET_ADDRSTRLEN]; inet_ntop(AF_INET, &sin->sin_addr, str, INET_ADDRSTRLEN); DBG0(" Addres = " << str); METHOD 2: --> This prints Adress =127.0.0.1 In this method, instead of using "fd", I am using the socket descriptor from "accept" call
Add your voice to the tech community where 5M+ people just like you are talking about what matters.
Join the community of 500,000 technology professionals and ask your questions.