抓取数据包,怎么将净载数据剥离出来进行处理。求用C语言编写,只有剥离的那部分源代码都可以!
答案:2 悬赏:80
解决时间 2021-02-28 15:40
- 提问者网友:我一贱你就笑
- 2021-02-28 11:40
抓取数据包,怎么将净载数据剥离出来进行处理。求用C语言编写,只有剥离的那部分源代码都可以!
最佳答案
- 二级知识专家网友:北城痞子
- 2021-02-28 12:59
要知道数据包只是一种特定数据结构的比特流。
要剥离必须清楚理解协议,根据协议的字段标识,来定义数据结构。文字描述不清楚,举个例子。
如果协议规定包的结构如下
pack_size:16
head:4
body:12
//...具体一些含义的位段
那么数据结构这么定义
typedef strut _PACKET
{
USHORT uPacketSize;
USHORT uHead:4
USHORT uBody:12
//....
}PACKET, *PPACKET;
Recv获取到数据放在BUFFER[BUFFER_SIZE]这个缓冲中,那么这么解析
PPACKET pRes = (PPACKET)BUUFER;
然后访问pRes字段就可以得到相应的净荷。最后lz可以参考用原始套接字编写ping程序。
要剥离必须清楚理解协议,根据协议的字段标识,来定义数据结构。文字描述不清楚,举个例子。
如果协议规定包的结构如下
pack_size:16
head:4
body:12
//...具体一些含义的位段
那么数据结构这么定义
typedef strut _PACKET
{
USHORT uPacketSize;
USHORT uHead:4
USHORT uBody:12
//....
}PACKET, *PPACKET;
Recv获取到数据放在BUFFER[BUFFER_SIZE]这个缓冲中,那么这么解析
PPACKET pRes = (PPACKET)BUUFER;
然后访问pRes字段就可以得到相应的净荷。最后lz可以参考用原始套接字编写ping程序。
全部回答
- 1楼网友:神鬼未生
- 2021-02-28 13:21
这个你去百度文库里面找找相关的吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯