标签:
struct hostent *h = gethostbyname(pDomain);
今天在写一个下载网上文件到本地的小程序,在测试时发现 gethostbyname()老是返回NULL。
解析不了域名了。
问题出哪了? 相关的代码是从原来写过的项目中直接复制过来了,原来的项目可以正常工作啊。
经过10多分钟的检查,终于找到原因,忘记了: Winsock服务的初始化 -> WSAStartup()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* 为了在应用程序当中调用任何一个Winsock API函数,首先第一件事情就是必须通过WSAStartup函数完成对Winsock服务的初始化, 因此需要调用WSAStartup函数。使用Socket的程序在使用Socket之前必须调用WSAStartup函数。 */ WORD wVersionRequested; WSADATA wsaData; int ret; //WinSock初始化 wVersionRequested = MAKEWORD(2, 2); //希望使用的WinSock DLL的版本 ret = WSAStartup(wVersionRequested, &wsaData); if (ret != 0) { appLog( "WSAStartup() failed!" ); return FALSE; } //确认WinSock DLL支持版本2.2 if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { appLog( "Invalid WinSock version!" ); WSACleanup(); return FALSE; }
|
2014-06-28
gethostbyname(domain) 老是返回 NULL, 凌乱了
标签:
原文地址:http://www.cnblogs.com/personnel/p/4584998.html