在套接字编程中,AF_INET和PF_INET有什么区别?
我在socket()和中使用AF_INET和PF_INET之间感到困惑bind()。
socket()
bind()
另外,如何在sin_addr字段中给出ip地址?
sin_addr
Beej著名的网络编程指南给出了一个很好的解释:
在某些文档中,您会看到一个神秘的“ PF_INET”。这是在自然界中很少见到的怪异的以太兽,但我在这里还是要澄清一下。很久以前,有人认为一个地址族(“ AF_INET”中的“ AF”代表什么)可能支持其协议族引用的几种协议(“ PF_INET”中的“ PF”代表什么) )。 那没有发生。那好吧。因此,正确的做法是在结构sockaddr_in中使用AF_INET,在对socket()的调用中使用PF_INET。但实际上,您可以在任何地方使用AF_INET。而且,由于那是W. Richard Stevens在他的书中所做的,所以我将在这里做。
在某些文档中,您会看到一个神秘的“ PF_INET”。这是在自然界中很少见到的怪异的以太兽,但我在这里还是要澄清一下。很久以前,有人认为一个地址族(“ AF_INET”中的“ AF”代表什么)可能支持其协议族引用的几种协议(“ PF_INET”中的“ PF”代表什么) )。
那没有发生。那好吧。因此,正确的做法是在结构sockaddr_in中使用AF_INET,在对socket()的调用中使用PF_INET。但实际上,您可以在任何地方使用AF_INET。而且,由于那是W. Richard Stevens在他的书中所做的,所以我将在这里做。