当我为 "home" 服务器获取 addrinfo 时,是否应该考虑 getaddrinfo 返回的链表
Should I think about linked list returned by getaddrinfo when I get addrinfo for my "home" server
我使用在我的家庭网络上运行的套接字创建了一个服务器。 socket address=192.168.88.123:7777
当我调用 getaddrinfo() 函数时,我将“192.168.88.123”作为第一个参数,“7777”作为第二个参数,还有一些提示(AF_INET、SOCK_STREAM)和指向结果链表的指针。我注意到在这种情况下,我总是得到只有一种结构的链表。
问题: 在这种情况下(当我在自己的服务器上工作时)我应该考虑链表还是 getaddrinfo 总是 return 一个元素的链表?
getaddrinfo()
的重点是获取 IP 列表。
如果您请求将特定 IP 地址作为输入,则生成的列表将仅包含同一 IP 的 1 个元素。
如果您请求将主机名作为输入,结果列表将包含主机名解析到的每个 IP 的元素。
如果您根本不请求 IP/hostname,生成的列表将取决于是否使用了 AI_PASSIVE
标志。如果使用该标志,列表将包含 0.0.0.0
and/or ::0
的元素,具体取决于请求的 ai_family
。如果未使用该标志,则列表将包含 127.0.0.1
and/or ::1
的元素,具体取决于请求的 ai_family
。
我使用在我的家庭网络上运行的套接字创建了一个服务器。 socket address=192.168.88.123:7777
当我调用 getaddrinfo() 函数时,我将“192.168.88.123”作为第一个参数,“7777”作为第二个参数,还有一些提示(AF_INET、SOCK_STREAM)和指向结果链表的指针。我注意到在这种情况下,我总是得到只有一种结构的链表。
问题: 在这种情况下(当我在自己的服务器上工作时)我应该考虑链表还是 getaddrinfo 总是 return 一个元素的链表?
getaddrinfo()
的重点是获取 IP 列表。
如果您请求将特定 IP 地址作为输入,则生成的列表将仅包含同一 IP 的 1 个元素。
如果您请求将主机名作为输入,结果列表将包含主机名解析到的每个 IP 的元素。
如果您根本不请求 IP/hostname,生成的列表将取决于是否使用了 AI_PASSIVE
标志。如果使用该标志,列表将包含 0.0.0.0
and/or ::0
的元素,具体取决于请求的 ai_family
。如果未使用该标志,则列表将包含 127.0.0.1
and/or ::1
的元素,具体取决于请求的 ai_family
。