首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSAGetLastError()返回122个

WSAGetLastError()返回122个
EN

Stack Overflow用户
提问于 2010-12-06 16:20:53
回答 4查看 1.8K关注 0票数 1

好吧..。我不太清楚这意味着什么,但是我的系统运行着,没有为记忆不足而哭泣。

我想这与系统错误122有关,因为在winsock错误代码(MSDN)中没有122。

有线索吗?.

它发生在调用getaddrinfo(NULL, /*PortNumber*/, &hints, &pFinal)

编辑好吧..。这里有更多的代码(没有注释掉,也没有意义)

代码语言:javascript
复制
            addrinfo hints, *pFinal = nullptr;
            memset(&hints, 0, sizeof(hints));
            hints.ai_flags = AI_PASSIVE;
            hints.ai_socktype = SOCK_STREAM;
            hints.ai_family = AF_INET;

            if(getaddrinfo(NULL, g_ACCEPTOR_PORT_NUMBER, &hints, &pFinal))
                return ERROR_BIND_SOCKET;

问题在于我的g_ACCEPTOR_PORT_NUMBER,它是一个包含

代码语言:javascript
复制
operator const char*()
    {
        std::stringstream ss;
        ss << m_nPortNumber;
        return ss.str().c_str();
    }

我必须改变转换操作符吗..。我更喜欢使用这个"STRINGINT“,所以我不需要将端口号保存为字符串和数字,或者显式地转换它.

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-06 18:08:10

问题在于operator const char*()的实现。一旦该函数返回,您的stringstream对象就不再有效,因为它不再在作用域中。

票数 1
EN

Stack Overflow用户

发布于 2010-12-06 16:28:28

可能是getaddrinfo调用中的一个坏参数。你能贴更多代码吗?

在命令提示符下输入net helpmsg 122,您将得到:

传递给系统调用的数据区域太小。

票数 2
EN

Stack Overflow用户

发布于 2010-12-06 16:54:19

getaddrinfo实际上返回一个错误代码,您应该根据getaddrinfo文档中指定的值对其进行测试。

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

https://stackoverflow.com/questions/4368525

复制
相关文章

相似问题

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