初学请教问题:
我用为什么getaddrinfo()没有得到本机ip?谢谢
void CGetHostNameDlg::OnGetHostNameIP()
{
// TODO: Add your control notification handler code here
char szHostname[128];
char *ipName = new char[16];
struct addrinfo *result=NULL;
struct addrinfo *ptr = NULL;
struct addrinfo hints;
int error;
UpdateData();
gethostname(szHostname,128);
m_strName = szHostname;
struct sockaddr_in *sockaddr_ipv4;
// Setup the hints address info structure
// which is passed to the getaddrinfo() function
ZeroMemory(&hints,sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_protocol = IPPROTO_UDP;
hints.ai_socktype = SOCK_DGRAM;
error = getaddrinfo(szHostname,NULL,&hints,&result);
if (error!=0)
{
printf("getaddrinfo failed with error: %d\n", error);
WSACleanup();
exit(1);
}
for (ptr = result; ptr != NULL;ptr=ptr->ai_next)
{
sockaddr_ipv4 = (sockaddr_in *)ptr->ai_addr;
}
// m_strIP =inet_ntoa( sockaddr_ipv4->sin_addr);
m_strIP = InetNtop(AF_INET,&sockaddr_ipv4->sin_addr,(PWSTR)ipName,16);
UpdateData(false);
}