网络编程工程实训_实验五 使用Libpcap库实时抓包提取数据保存为TS文件

本次实验通过Libpcap库在Centos7.0环境下,利用C/C++编程实时抓取UDP数据包,解析去除协议层头部,仅保留应用层数据,最终保存为TS文件。实验涉及Winsend发送TS流,pcap_open_live()、pcap_next()或pcap_next_ex()、pcap_loop()函数的使用,以及VLC播放器和SAnalyzer工具的验证。实验结果显示数据提取成功,但虚拟机性能影响了文件播放质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验任务:

使用前期搭建好的开发环境(Centos7.0+gcc+libpcap),使用C/C++语言开发一个应用程序,打开虚拟机网卡(与物理主机在同一个子网的)设备,实时抓取从物理主机发来的UDP数据包并进行解析,去除协议层头部,仅保留应用层数据,保存为TS文件(扩展名为ts)。

实验内容:

1.使用TS流发送软件Winsend发送TS视频数据流到虚拟机和VMnet8网卡所在的网络(或者以单播的形式发送到虚拟机),选择重复播放,Winsend的参数配置:interface选择VMnet8网卡的IP地址,端口号可以填8000,IP address填写一个多播IP地址,其它参数均默认,发送视频文件可以点击open,选择发送给大家的TS文件(会单独发送给大家)。
2.使用libpcap库的pcap_t *pcap_open_live(const char *fname, char *errbuf)函数,打开虚拟机网卡设备(用实验二的方法),并根据打开成功与否,打印“Hello+你的姓名!”(成功)或“Sorry+你的姓名!”(失败)。
3.使用上一步中获取的设备,采用以下两种方法其一,从网卡抓包并解析处理,提取应用层数据保存为ts文件,名称为:学号+姓名2.ts。
使用while死循环和pcap_next()或pcap_next_ex()对抓包数据进行解析,并去除PDU头部。
使用pcap_loop()和自定义回调函数来进行数据包解析,去除各层PDU头部,对数据包的解析和头部处理操作均放在回调函数中。
4.针对你得到的ts文件,使用VLC播放器进行播放,如果能够正常播放,则数据提取成功。
5.使用Elecard StreamEye Tools中的SAnalyzer(单独发送给大家)打开解析提取出的ts文件,查看TS文件中,节目流的数目及相应的PID,在实验报告中记录下来。
实验过程填写要求:对以上5项内容,写出详细步骤,并将每一层解析的结果抓图放入报告中。

实验过程:

1.代码测试阶段,选择Repea file以便测试,最后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值