【问题标题】:Getaddrinfo different behaviourGetaddrinfo 不同的行为
【发布时间】:2014-02-26 03:12:35
【问题描述】:

我有一个程序,它适用于套接字。在客户端,我通过 getaddrinfo 获得必要的信息,然后将结果传递给连接函数。问题是,它在不同的环境中工作方式不同。在获得 addrinfo 结构并将其传递给连接函数后的某些环境中,我得到无效参数错误。我错过了什么吗?请帮帮我。 我是这样使用它的:

getaddrinfo(host, NULL, NULL, &Result);

使用设置套接字类型和套接字系列传递提示参数没有给我带来任何结果。

提前致谢。

【问题讨论】:

  • 确实没有足够的细节来有效地猜测出了什么问题;但最明智的做法是在失败案例中记录Result 内容并将其与成功案例进行比较。您是否收到多个地址返回?一种可能是 IPv6,它可能不适用于您的连接呼叫

标签: c++ linux sockets


【解决方案1】:

只是一个猜测,因为您没有要检查的代码: 请确保套接字的域(AF_INET 或 AF_INET6)与 addrinfo 结构中的 ai_family 的域匹配。更好的是,在 getaddrinfo 调用之后创建套接字并使用 ai_family 作为套接字域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多