linux 发送自定义包裹 c 程序

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in_systm.h>
#include <netinet/if_ether.h>



int main(void) {
	int s;
	int sd;
	char iface[256] = "wlp1s0";
	char packet[26];
	struct sockaddr sa;

	s = socket(PF_PACKET,SOCK_PACKET,htons(ETH_P_ALL));
	if(s < 0){perror("socket error\n");exit(EXIT_FAILURE);}

	memset(&sa,0,sizeof(sa));
	sa.sa_family = PF_PACKET;
	snprintf(sa.sa_data,256,"%s",iface);

	memset(&packet,0,sizeof(packet));

	for(int i=0;i<=100;i++){
		sd = sendto(s,packet,sizeof(packet),0,&sa,sizeof(sa));
		if(sd < 0){perror("sendto error\n");exit(EXIT_FAILURE);}
	}

	return EXIT_SUCCESS;
}

如果你要定义包裹 你就应该 把包裹定义成这样:

packet26 = {0xff,0xff .....} 这样的数据形式

相关推荐
晓蛋13 小时前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
未济13 小时前
linux 配置环境变量
linux
傲世仙尊13 小时前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫13 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
牵猫散步的鱼儿14 小时前
重载、重写(覆盖)、重定义区别
c语言
phltxy14 小时前
C 语言指针:从内存地址到灵活的数据访问
c语言
_艾伦 耶格尔.15 小时前
进程间通信
linux
phltxy15 小时前
C 语言中的数据存储:从类型到二进制位
c语言
Liuqy-0515 小时前
Linux IO编程——静态库、动态库
linux
wuyk55515 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网