【发布时间】:2016-06-23 21:17:34
【问题描述】:
我用 C++ 编写了这段代码来连接服务器,但每次我尝试“gethostbyname”时,该值都是空的(或已优化且不可用)。
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
cout << "WSAStartup failed.\n";
system("pause");
return 1;
}
hostent *host = gethostbyname("www.example.com");
我已经尝试将 hostent 作为 volatile 但仍然给出 null。 有没有其他方法可以使这项工作? 我也试过优化禁用但一直给null。
【问题讨论】:
-
"返回值如果没有发生错误,gethostbyname返回一个指向上述hostent结构的指针。否则,它返回一个空指针,并且可以通过调用WSAGetLastError来检索特定的错误号。" (MSDN)
-
打开的套接字和主机查询之间的假定关系是什么?
标签: c++ windows gethostbyname