一尘不染

在套接字编程中,AF_INET和PF_INET有什么区别?

linux

在套接字编程中,AF_INET和PF_INET有什么区别?

我在socket()和中使用AF_INET和PF_INET之间感到困惑bind()

另外,如何在sin_addr字段中给出ip地址?


阅读 470

收藏
2020-06-02

共1个答案

一尘不染

Beej著名的网络编程指南给出了一个很好的解释:

在某些文档中,您会看到一个神秘的“ PF_INET”。这是在自然界中很少见到的怪异的以太兽,但我在这里还是要澄清一下。很久以前,有人认为一个地址族(“
AF_INET”中的“ AF”代表什么)可能支持其协议族引用的几种协议(“ PF_INET”中的“ PF”代表什么) )。

那没有发生。那好吧。因此,正确的做法是在结构sockaddr_in中使用AF_INET,在对socket()的调用中使用PF_INET。但实际上,您可以在任何地方使用AF_INET。而且,由于那是W.
Richard Stevens在他的书中所做的,所以我将在这里做。

2020-06-02