0

使用 getaddrinfo 方法时,我提供了 IP 地址和端口号。我在 out 变量中得到了一个链表。它工作正常。但我在这里有一个概念上的疑问。当我同时提供 IP 地址和端口时,怎么会有这么多可能的套接字返回?不应该只有一个吗?

4

1 回答 1

0

从 getaddrinfo 手册页:

链表可能具有多个 addrinfo 结构的原因有多种,包括: 网络主机是多宿主的,可通过多种协议访问(例如,AF_INET 和 AF_INET6);或者可以从多种套接字类型(例如,一个 SOCK_STREAM 地址和另一个 SOCK_DGRAM 地址)获得相同的服务。通常,应用程序应尝试按照返回的顺序使用地址。getaddrinfo() 中使用的排序函数在 RFC 3484 中定义;可以通过编辑 /etc/gai.conf(自 glibc 2.5 起可用)来调整特定系统的顺序。

于 2011-11-22T05:18:35.853 回答