1.socket(PF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包 2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))发送接收以太网数据帧 3.socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))发送接收以太网数据帧(不包括以太网头部...
sockfd = socket(PF_PACKET, SOCK_RAW, 0); socket传入的参数含义为: 第一个参数是协议族(protocol family),还有一个相近含义的东西是地址族(address family),现在协议族和地址族基本是等价的,内核中也是简单的宏定义替换,也就是说PF_PACKET和AF_PACKET都可以作为第一个参数,表示使用的是packet协议族 第二...
int sock_raw_fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); //获取链路层的数据包 int len =recvfrom(sock_raw_fd, buf, sizeof(buf), 0, NULL, NULL); printf("len = %d\n", len); return 0; } 混杂模式 默认的情况下,我们接收数据,目的地址是本地地址,才会接收。有时候我们想接...
sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP));//第三个参数可以为ETH_P_ALL ETH_P_IP ETH_P_ARP等 1. (2)接受 struct sockaddr_ll client; socklen_t addr_length = sizeof(sockaddr_ll); recvfrom(sock, buffer, 2048, 0, (sockaddr *)&client, &addr_length);//此时的地址是数据...
type:指定socket类型。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等。 protocol:故名思意,就是指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。
1.socket(AF_INET,SOCK_RAW,IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包 2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))发送接收以太网数据帧 3.socket(AF_INET, SOCK_PACKET, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))过时了,不要用啊 ...
协议簇是网络层的协议。一种是处理IP层即其上的数据,通过指定socket第一个参数为AF_INET来创建这种套接字。有两种原始套接字。另一种是处理数据链路层即其上的数据,通过指定socket第一个参数为AF_PACKET来创建这种套接字。 PF_PACKET支持SOCK_DGRAM和SOCK_RAW两种socket类型。
AF_INET和PF_INET效果相同。 l套接字类型: SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等 常见的2个类型的套接字: 流套接字和数据包套接字 流套接字(在某些方面类似域标准的输入/输出流)提供的是一个有序,可靠,双向字节流的连接。 提供面向连接的服务。
PACKET_MULTIHOST -数据包发送到物理层多播地址。PACKET_OTHERHOST -混杂到设备驱动程序捕获到的其他主机的数据包。PACKET_OUTGOING -来自本地主机的数据包,该本地主机环回到数据包套接字。hatype-可选整数,指定ARP硬件地址类型。addr-可选的类似字节的对象,指定硬件物理地址,其解释取决于设备。
选 用不同的通信协议:IPPROTO_TCP:TCP (Transmission Control Protocol 传输控制协议)IPPROTO_UDP:UDP (User Datagram Protocol, 用户数据报协议)IPPROTO_ICMP:ICMP (Internet Control Message Protocol,Internet控制报文协议)