什么是AF_iNet,为什么我需要它?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

所以我开始使用套接字编程,并且我一直在看这个AF_INET。但是,我从来没有见过其他用途。我的讲师不是那么有帮助,只是说“你只需要它”。所以我的问题:

  • 目的是AF_INET什么?
  • 还有别的东西用来代替它吗?
    • 如果不是,那为什么呢?对于未来可能的变化?
    • 如果是这样,为什么?

提问于
用户回答回答于

AF_INET是一个地址,用于指定套接字可以与之通信的地址类型(在本例中为Internet协议v4地址)。当你创建一个套接字时,你必须指定它的地址系列,然后你只能在套接字中使用那种类型的地址。Linux内核,例如,支持29家其他地址族如UNIX( AF_UNIX)套接字和IPX( AF_IPX),也与IrDA和蓝牙通信(AF_IRDAAF_BLUETOOTH,但令人怀疑的是,你会在如此低的水平使用这些)。

大多数情况下,坚持AF_INET通过网络进行套接字编程是最安全的选择。还有AF_INET6Internet协议v6地址。

用户回答回答于

AF_INET的主要目的是允许其他可能的网络协议或地址族(AF用于地址族; PF_INET用于(IPv4)互联网协议族)。例如,可能还有几个Netware SPX / IPX网络仍在使用; 还有其他网络系统,如DECNet,StarLAN和SNA,更不用说不恰当的ISO OSI(开放系统互连)了,它们不一定使用现在无处不在的IP地址来识别网络连接中的对等主机。

AF_INET的无处不在的替代方案(回想起来应该命名为AF_INET4)是AF_INET6,用于IPv6地址系列。IPv4使用32位地址; IPv6使用128位地址。

你可能会看到其他一些价值 - 但它们是不寻常的。它是在那里允许替代品和未来的方向。套接字接口确实非常普遍 - 这是其他网络接口枯萎的地方之一。

扫码关注云+社区