AF_INET和PF_INET的区别

在写网络程序的时候,建立TCP socket一般是这样的:

    sock = socket(PF_INET, SOCK_STREAM, 0);

然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。

问题是AF_INET和PF_INET到底有什么区别,甚至很多参考书上都是混用。今天查了一下相关头文件的定义,找到了答案。

AF = Address Family

PF = Protocol Family

AF_INET = PF_INET

所以,理论上建立socket时是指定协议,应该用PF_xxxx,设置地址时应该用AF_xxxx。当然AF_INET和PF_INET的值是相同的,混用也不会有太大的问题。


你可能感兴趣的:(AF_INET和PF_INET的区别)