在一些开源项目的 socket 相关代码中,会同时看到 AF_IENT 和 PF_INET,这两者有什么区别呢?

其实这两个东西就是当年设计上的误差而已。AF=Adress Family,PF=Protocal Family,原来的设计是设想一个 AF 会支持多个 PF,但是就没有然后了。现在为止,这两个东西就是一样的,Linux 源代码为证:

1
2
3
4
5
/* Protocol families, same as address families. */  
#define PF_UNSPEC	AF_UNSPEC  
#define PF_UNIX	 AF_UNIX  
#define PF_LOCAL	AF_LOCAL  
#define PF_INET	 AF_INET  

参考: