资源简介
应用libnet库发送自定义的tcp和udp数据包
## 安装libnet
cd /home
tar -zxvf libnet-1.2-rc3.tar.gz
cd libnet-1.2-rc3
./configure --prefix=/usr
make
make install
cd /home
代码片段和文件信息
//读文件tcp6.cpp
#include
#include
#include //ifstream读文件,ofstream写文件,fstream读写文件
#include
#include //文本对象,储存读取的内容
#include //屏幕输出cout
#include //调用system(“pause“);
using namespace std;
#include
#define SIZE 1024
typedef struct
{
char yip[30];
char mip[30];
int yport;
int mport;
char xieyi[20];
char paylo[255];
}student;
student stu[SIZE] buf[SIZE];
int main() {
ifstream in(“1.txt“);
string line;
int i = 0;
int num = 0;
if (in) // 有该文件
{
while (getline(in line)) // line中不包括每行的换行符
{
istringstream is(line);
string str0 str1 str2 str3 str4str5;
is >> str0 >> str1 >> str2 >> str3 >> str4 >> str5;
//cout << str0< strcpy(buf[i].yip str0.c_str());
strcpy(buf[i].mip str1.c_str());
buf[i].yport = atoi(str2.c_str());
buf[i].mport = atoi(str3.c_str());
strcpy(buf[i].xieyi str4.c_str());
strcpy(buf[i].paylo str5.c_str());
i++;
num++;
}
}
else // 没有该文件
{
cout << “no such file“ << endl;
}
i = 0;
while (num>=0) {
char xie[20]=“TCP“;
// cout< if(strcmp (buf[i].xieyixie) == 0){
libnet_t* handle; /* Libnet句柄 */
int packet_size; /* 构造的数据包大小 */
char* device = “eno1“; /* 设备名字也支持点十进制的IP地址会自己找到匹配的设备 */
char* src_ip_str = buf[i].yip; /* 源IP地址字符串 */
char* dst_ip_str = buf[i].mip; /* 目的IP地址字符串 */
u_char src_mac[6] = { 0x0c0xc40x7a0x770x3d0x62 }; /* 源MAC */
u_char dst_mac[6] = { 0x0c0xc40x7a0x770x3d0x2e }; /* 目的MAC */
u_long dst_ip src_ip; /* 网路序的目的IP和源IP */
char error[LIBNET_ERRBUF_SIZE]; /* 出错信息 */
libnet_ptag_t eth_tag ip_tag tcp_tag tcp_op_tag; /* 各层build函数返回值 */
u_short proto = IPPROTO_TCP; /* 传输层协议 */
char payload[255] = { 0 }; /* 承载数据的数组,初值为空 */
u_long payload_s = 0; /* 承载数据的长度,初值为0 */
/* 把目的IP地址字符串转化成网络序 */
dst_ip = libnet_name2addr4(handle dst_ip_str LIBNET_RESOLVE);
/* 把源IP地址字符串转化成网络序 */
src_ip = libnet_name2addr4(handle src_ip_str LIBNET_RESOLVE);
/* 初始化Libnet */
if ((handle = libnet_init(LIBNET_link device error)) == NULL) {
printf(“libnet_init failure\n“);
return (-1);
};
strncpy(payload buf[i].paylo sizeof(payload) - 1); /* 构造负载的内容 */
payload_s = strlen(p
- 上一篇:FTP客户端源码(c++)
- 下一篇:modbus tcp/ip 简单通讯
相关资源
- modbus tcp/ip 简单通讯
- socket tcp应用
- TCP/IP与串口调试
- Tcp自定义命令调试工具
- Qt TCP聊天室demo
- TCP服务端和TCP客户端通讯
- MFC UDP编程
- Microsoft.Visual.C++.NET技术内幕第六版
- Microsoft Visual C++.NET技术内幕
- 将dataset json序列化和反序列化成data
- 使用socket套接字发送udp数据包
- DirectShow+vb.net摄像头捕获代码
- 即时通讯开发源码终极版C#.NETC++都有
- 基于TCP协议的C/S传输文件C++)
- Visual C++.NET图像处理编程源代码 陆宗
- C语言实现TCP/IP协议通信和UDP协议通信
- c语言+UDP+DES加密+socket编程
- Boost.Asio C++ Network Programming(2nd) 无水
- 基于udp的socket编程
- MFC下TCP服务器
- Internet选项设置-C++
- 基于TCP协议的文件传输编程
- C语言实现telnet客户端
- TCP实现服务器和多客户端通信
- VC++6.0多人网络小游戏-支持多人联机网
- RakNet 基于UDP网络传输协议的C++网络库
- 基于UDP的简单可视化界面聊天程序c
- 基于TCP/IP socket的局域网聊天系统
- vc-基于MFC编程,使用TCP/IP模型编写
- Windows下基于ModbusTcp的Server端开发C语言
评论
共有 条评论