码迷,mamicode.com
首页 > 其他好文 > 详细

gethostbyname(domain) 老是返回 NULL, 凌乱了

时间:2015-06-18 10:57:42      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!