微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有标志AI_NUMERICHOST的getaddrinfo

如何解决带有标志AI_NUMERICHOST的getaddrinfo

请告诉我一些我听不懂的内容。有一个功能getaddrinfo()一个标志AI_NUMERICHOST。 MSDN说,在带有该标志的getaddrinfo()中,您需要发送IP地址的数字值,而不是域名。但是为什么呢?

我已经有一个IP地址,为什么我要问DNS一个IP地址?

解决方法

getaddrinfo()输出所请求的主机/服务的sockaddr_...结构(sockaddr_insockaddr_in6)。不仅取决于IP地址,还取决于其他内容,例如套接字类型,服务端口等,具体取决于您的输入和hint值。

因此,如果您已经具有字符串格式的IP地址,则可以让getaddrinfo()为您解析该字符串(指定AI_NUMERICHOST以避免DNS)为在输出sockaddr_...二进制格式,以及同时填写其他sockaddr_...字段。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。