在一些文档中,可能会遇到"PF_INET"。 出现AF_INET和PF_INET是历史原因。在网络设计之初,AF = Address Family,PF = Protocol Family,所以最好在指示地址的时候使用AF,在指示协议的时候使用PF。因为那时人们希望同一个地址族( "AF" in "AF_INET" )可能支持多个协议族 ("PF" in "PF_INET" )。这样的话,就...
PF_INET是常用的网络协议族之一,用于指定网络套接字的地址及协议类型。在Linux系统中,常用的网络编程接口为socket函数,其中的参数PF_INET表示创建一个IPv4协议族的套接字。通过socket函数的调用,我们可以创建不同类型的网络套接字,如TCP套接字、UDP套接字等,实现不同类型的网络通信。 在网络编程中,Linux提供了丰富...
/*socket就是在这里创建的,实际调用的是inet_createaf_inet.c文件中: static const struct net_proto_family inet_family_ops = { .family = PF_INET, .create = inet_create, .owner = THIS_MODULE, };*/ err = pf->create(net, sock, protocol, kern); ... } 创建socket的核心函数就2个:sock_...
对于BSD,是AF,对于POSIX是PF UNIX系统支持AF_INET,AF_UNIX,AF_NS等,而DOS,Windows中仅支持AF_INET,它是网际网区域. 在函数socketpair与socket的domain参数中有AF_UNIX,AF_LOCAL,AF_INET,PF_UNIX,PF_LOCAL,PF_INET.这几个参数有AF_UNIX=AF_LOCAL,PF_UNIX=PF_LOCAL,AF_LOCAL=PF_LOCAL,AF_INET=PF_INET....
使用PF_INET和SOCK_STREAM 目前,在domain参数为PF_INET的SOCK_STREAN的套接口中,protocol的参数为0意味着内核选择IPPROTO_TCP,也就是套接口使用TCP/IP协议。 使用PF_INET和SOCK_DGRAM 这个组合告诉内核选择UDP协议。也就是选择IPPROTO_UDP。 下表是一个总结: ...
(2)PF_INET:protocol family_网际协议(就是IPv4协议),等于AF_INET 包含头文件<sys/socket.h> 功能:创建一个套接字用于通信 原型: int socket(int domain, int type, int protocol); 参数: domain:指定通信协议族(protocol family) type:指定socket类型,流式套接字SOCK_STREAM,数据报套接字SOCK_DGRAM,原始套...
PF = Protocol Family AF_INET = PF_INET 所以在windows中AF_INET与PF_INET完全一样. 而在Unix/Linux系统中,在不同的版本中这两者有微小差别.对于BSD,是AF,对于POSIX是PF. 理论上建立socket时是指定协议,应该用PF_xxxx,设置地址时应该用AF_xxxx。当然AF_INET和PF_INET的值是相同的,混用也不会有太大的问题...
(lib, "ws2_32.lib") //连接winsock2.h的静态库文件using namespace std;int main(){//加载winsock库WSADATA wsadata;WSAStartup(MAKEWORD(2, 3), &wsadata);//客户端socketSOCKET clientSock = socket(PF_INET, SOCK_STREAM, 0);//初始化socket信息//memset:作用是在一段内存块中填充某个给定的值,它...
PF_INETv4v6 sockets(IP Socket):基于 IPv4v6 网络层协议,支持 TCP、UDP 传输层协议。 SOCK_STREAM:TCP 字节流式传输。 SOCK_DGRAM:UDP 数据包式传输。 SOCK_RAW:原始套接字,可以处理 IPv4、ICMP、IGMP 等报文,常用于网络监听、检验新的协议或者访问新的设备。