2011-11-22 9 views
0

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

回答

0

从的getaddrinfo手册页:

有几个原因,为什么链表可能有不止一个 addrinfo中的结构,包括:网络主机是多宿主,通过多种协议 访问(比如他们AF_INET和AF_INET6); 或相同的服务可用于多种套接字类型(例如,一个 SOCK_STREAM地址和另一个SOCK_DGRAM地址)。 通常,应用程序应尝试使用返回它们的订单号码为 的地址。 getaddrinfo()中使用的排序功能在RFC 3484中定义;可以通过编辑/etc/gai.conf(自glibc 2.5之后可用)来调整订单,以便编辑特定系统的 。

+0

明白了。但是返回的结构与sockaddr_storage不兼容。我的问题是关于这个结构。 – Nanda