gpt4 book ai didi

c - 为什么 `struct sockaddr` 包含地址族字段?

转载 作者:太空狗 更新时间:2023-10-29 14:59:47 25 4
gpt4 key购买 nike

为什么 struct sockaddr 包含地址族字段?地址族不是已经通过调用 socket() 固定了吗?

最佳答案

sockaddr 的用处不止是 connectbind,包括您对地址没有一些外部知识的地方涉及的家庭 - getaddrinfo 是一个。

此外,虽然我不相信以下等同于在任何地方实践,但我可以看到它已经出现在最初设计这些东西的人的眼中:对 socket() 的调用定义了协议(protocol)家庭。 sockaddr 包含地址族。在实践中,我相信它们总是相同的,但理论上您可以拥有一个能够支持两种不同地址类型的协议(protocol)。

编辑:参数还有另一种有用的方式。如果您正在使用数据报 (UDP) 套接字并且您有一个处于“已连接”状态且具有默认目标地址的套接字,您可以 clear out that address通过使用 sockaddr 调用 connect() 并将 sa_family 设置为 AF_UNSPEC

关于c - 为什么 `struct sockaddr` 包含地址族字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com