当然AF_INET和PF_INET的值是相同的,混用也不会有太大的问题。也就是说你socket时候用PF_xxxx,设置的时候用AF_xxxx也是没关系的,这点随便找个TCPIP例子就可以验证出来了。如下,不论是AF_INET还是PF_INET都是可行的,只不过这样子的话,有点不符合规范。 /* 服务器端开始建立socket描述符 */// if((sockfd=...
所以在windows中AF_INET与PF_INET完全一样. 而在Unix/Linux系统中,在不同的版本中这两者有微小差别.对于BSD,是AF,对于POSIX是PF. 理论上建立socket时是指定协议,应该用PF_xxxx,设置地址时应该用AF_xxxx。当然AF_INET和PF_INET的值是相同的,混用也不会有太大的问题。也就是说你socket时候用PF_xxxx,设置的时...
我认为:用AF_INET好,用PF_INET也行。winsock.h里: #define AF_INET 2 #define PF_INET AF_INET #define PF_UNIX AF_UNIX 上面这样的宏定义有26行。 In practice, though, the PF_ and AF_ macros for the built-in protocols have the same values (in both Linux and Windows). 下面的例子都是用...
PF_INET 指的是协议中的任何内容,通常是套接字/端口。 建议阅读 socket(2) 和bind(2) 的man 手册。对于 sin_addr 字段,只需像以下示例那样设置: struct sockaddr_in addr; inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); - codemac 谢谢@codemac,我已经使用了addr.sin_addr.s_addr = inet_a...
AF_INET和PF_INET在Windows系统中通常被视为等价的,因为它们都代表Internet地址族(ADDRESS FAMILY)。在Winsock2.h中,它们的宏定义AF_INET等于2,而PF_INET则定义为AF_INET,表明在Windows平台上的使用是相同的。然而,在Unix/Linux系统中,特别是BSD和POSIX版本,AF_INET可能对应不同的标识符,例如...
在进行socket编程时,选择AF_INET的主要原因是它对应IPv4协议,IPv4地址使用32位,相比IPv6的128位,计算效率更高,适合于局域网内的通信。此外,AF_INET具有广泛的平台兼容性,特别在Windows系统中,AF_INET是可用的,而AF_UNIX则不常见。AF_INET和PF_INET实际上在Windows中是等同的,都代表IPv4,但在...
三、PF_INET和AF_INET、PF_UNIX和AF_UNIX之间的区别 四、参考资料 一、AF_UNIX 本地通信 1. Linux进程通信机制 linux本地进程间通讯,大概有如下几种方式,socket本地域套接字是其中的一种。 项目中,主应用和协议栈两个进程间通讯,就是用的socket本地域套接字。(需要自定义数据协议格式,一般定义好协议格式头...
AF_INET是一个地址系列,用于指定套接字可以与之通信的地址类型(在本例中为Internet协议v4地址)。创建...
选择 AF_INET 的目的就是使用 IPv4 进行通信。因为 IPv4 使用 32 位地址,相比 IPv6 的 128 位来说,计算更快,便于用于局域网通信。而且 AF_INET 相比 AF_UNIX 更具通用性,因为 Windows 上有 AF_INET 而没有 AF_UNIX。注:AF_INET(又称 PF_INET)是 IPv4 网络协议的套接字类型,AF_...