在bc中使用gethostbyname()函数的问题?
小弟我刚接触windows Socket编程,我写了下面的代码,但是使用gethostbyname()后得到的h_addr无法理解。
char smtp_server_name[255];
struct hostent far *smtp_server_dns;
WSAData version_info;
memset(smtp_server_name,0,256);
strncat(smtp_server_name,"smtp.163.net",256);
WSAStartup((WORD)((1<<8)|1), &version_info);
smtp_server_dns=gethostbyname(smtp_server_name);//获得用户指定的smtp和pop服务器主机信息
....
这时smtp_server_dns->h_addr在“local variables"调试窗口中显示的是“乱码op.163.net",而且h_length的值为4,h_addrtype=2,得到的地址不是标准“a.b.c.d"的形式,随后调用connect()对smtp_sockaddr_in.sin_addr.s_addr=inet_addr(smtp_server_dns->h_addr);进行连接也失败(返回值不为0)。
直接用gethostbyname("smtp.163.net");结果也是这样。
请各位大虾指点...,万分感谢!