Skip to content

Commit

Permalink
Update 11.4-the-sockets-interface.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Dzx1025 authored Dec 26, 2021
1 parent 9a2d0aa commit 859bce2
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ struct addrinfo {
* **AI\_NUMERICSERV。**参数 service 默认可以是服务名或端口号。这个标志强制参数 service 为端口号。
* **AI\_PASSIVE。**getaddrinfo 默认返回套接字地址,客户端可以在调用 connect 时用作主动套接字。这个标志告诉该函数,返回的套接字地址可能被服务器用作监听套接字。在这种情况中,参数 host 应该为 NULL。得到的套接字地址结构中的地址字段会是通配符地址(wildcard address),告诉内核这个服务器会接受发送到该主机所有 IP 地址的请求。这是所有示例服务器所期望的行为。

当 getaddrinfo 创建输出列表中的 addrinfo 结构时,会填写每个字段,除了 ai\_flagsoai\_addr 字段指向一个套接字地址结构,ai\_addrlen 字段给出这个套接字地址结构的大小,而 ai\_next 字段指向列表中下一个 addrinfo 结构。其他字段描述这个套接字地址的各种属性。
当 getaddrinfo 创建输出列表中的 addrinfo 结构时,会填写每个字段,除了 ai\_flags。ai\_addr 字段指向一个套接字地址结构,ai\_addrlen 字段给出这个套接字地址结构的大小,而 ai\_next 字段指向列表中下一个 addrinfo 结构。其他字段描述这个套接字地址的各种属性。

getaddrinfo 一个很好的方面是 addrinfo 结构中的字段是不透明的,即它们可以直接传递给套接字接口中的函数,应用程序代码无需再做任何处理。例如,ai\_family、ai\_socktype 和 ai\_protocol 可以直接传递给 socket。类似地,ai\_addr 和 ai\_addrlen 可以直接传递给 connect 和 bind。这个强大的属性使得我们编写的客户端和服务器能够独立于某个特殊版本的 IP 协议。

Expand Down

0 comments on commit 859bce2

Please sign in to comment.