zoukankan      html  css  js  c++  java
  • gethostbyname(domain) 老是返回 NULL, 凌乱了

    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

  • 相关阅读:
    B
    I
    C
    判断线段之间的关系(D
    C
    求矩形的周长(线段树+扫描线) Picture POJ
    面积并+扫描线 覆盖的面积 HDU
    线段树->面积并 Atlantis HDU
    E1. Array and Segments (Easy version)(暴力) && E2. Array and Segments (Hard version)(线段树维护)
    Python File writelines() 方法
  • 原文地址:https://www.cnblogs.com/personnel/p/4584998.html
Copyright © 2011-2022 走看看