gpt4 book ai didi

network-programming - 网络编程: Socket function: Address family Vs Protocol family

转载 作者:行者123 更新时间:2023-12-04 08:01:11 24 4
gpt4 key购买 nike

我刚开始接触网络编程。在查看套接字函数时,有些使用 PF_INET,有些使用 AF_INET。看过 wikipedia ,它说这样的设计被用来使不同的协议(protocol)族能够使用不同的地址族。今天是否有任何支持多种地址类型的协议(protocol)系列?
当我搜索地址系列与协议(protocol)系列时,我也遇到了这个错误:

Address family not supported by protocol family
这是否意味着存在支持多个地址系列的协议(protocol)?
我遇到了这个 statement
you shouldn't necessarily expect to be able to use NS addresses with ARPA Internet protocols
什么是 NS 地址?
谢谢。

最佳答案

socket 的 Windows 文档表示地址族是第一个参数;我的 Linux 机器上的手册页说那应该是协议(protocol)族。从与平台无关的角度来看,Linux 版本似乎更正确——理论上,套接字有一个协议(protocol)族,地址有地址族,两者应该兼容。

但在实践中,PF_AF_内置协议(protocol)的宏具有相同的值(在 Linux 和 Windows 中)。我想这对于大多数操作系统来说都是一个类似的故事,因为所有常见的协议(protocol)系列都有一个地址系列。 (您可能认为 IP 会有两个,但不是。IPv4 和 IPv6 有不同的协议(protocol)族。)这(以及 C 相对较弱的类型)允许它们几乎可以互换使用。

请注意,不能保证所有操作系统或某些第三方驱动程序支持的协议(protocol)等都是这种情况。在这些情况下,您应该查阅特定平台的文档。

至于“NS 地址”是什么,据我所知,它们是施乐史前 Network Systems protocol 的一部分。 (一个类似于 TCP/IP 的协议(protocol)系列,但不同且不兼容,并且现代 PC 未使用)。除非您使用过时的系统,否则您不会看到它们在使用中;为什么将其保留为示例超出了我的范围。

关于network-programming - 网络编程: Socket function: Address family Vs Protocol family,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4965835/

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