Getaddrinfo - 为什么要发送附加信息?

问题描述

任何人都可以提出建议,因为 MSDN 不是很清楚为什么需要填写 addrinfo 结构的以下字段以传输此数据以及调用 Getaddinfo() 函数

hints.ai_family = AF_UNSPEC; //or AF_INET ... AF_INET6
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;

只是有两个让我无法理解的时刻:

-我可以将addrinfo结构的所有成员都设置为零,getaddrinfo退出没有错误并返回数据。

-我完全不明白为什么需要指定它们,因为我只是通过域名请求有关IP地址的信息,并没有将其提供给DNS服务器

同样适用于 getaddrinfo 的第二个参数 - 这是服务号(如 http / https)或端口号 (80/443) - 如果您将它们设为无效并将它们传递给 Getaddinfo,它也可以工作。 在这里,我也不明白为什么 DNS 服务器需要这些信息? 如果没有这些信息,DNS 是不是只能通过域名找到它存储的所有信息?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)