首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getaddrinfo()函数抛出错误n 11003

getaddrinfo()函数抛出错误n 11003
EN

Stack Overflow用户
提问于 2014-03-31 02:47:01
回答 1查看 4.1K关注 0票数 3

这让我抓狂

代码语言:javascript
复制
#undef UNICODE

#include "stdafx.h"
#include <WS2tcpip.h>
#include <WinSock2.h>
#include <string>
#pragma comment(lib,"Ws2_32.lib")

using namespace std;

int _tmain(int argc, char* argv[])
{

    WSADATA wsa;
    int error = WSAStartup(MAKEWORD(2,2),&wsa);
    if (error != 0)
    {
        printf("An error in startup %d\n",WSAGetLastError());
        system("pause");
    }

    addrinfo hints,
        * result = NULL,
        * ptr = NULL;
    hints.ai_family = AF_UNSPEC;
    hints.ai_protocol = IPPROTO_TCP;
    hints.ai_socktype = SOCK_STREAM;

    error = getaddrinfo(argv[1],NULL,&hints,&result);
    if (error != 0)
    {
        printf("An error in getaddrinfo %d\n",WSAGetLastError());
        system("pause");
    }

    char stringbuffer[2075];
    int len = sizeof(stringbuffer);
    for(ptr = result; ptr->ai_next != NULL; ptr = ptr->ai_next)
    {
        if(ptr->ai_family == AF_INET)
        {
            printf("Address: %s\n",InetNtop(ptr->ai_family,ptr->ai_addr,stringbuffer,len));
        }
    }

    return 0;
}

getaddrinfo抛出11003错误,我用main比较了很多互联网源码,但是我不明白为什么getaddrinfo失败了!我已经读过winsock错误代码描述,它说11003“表示在数据库查找过程中发生了某种不可恢复的错误”,所以提前谢谢!编辑:我问过其他地方,但没有人给我解决方案,我在这个问题上受阻了,我无法继续前进

EN

回答 1

Stack Overflow用户

发布于 2014-05-21 18:26:57

正如nos在评论中提到的那样

memset(&hints, 0, sizeof(hints))

应该能行得通。

getaddrinfo()尝试用提供的现有数据填充。垃圾数据使函数变得混乱。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22748234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档