当前位置: 技术问答>linux和unix
udp数据包的内容???
来源: 互联网 发布时间:2016-03-29
本文导语: 是不是UDP的数据内容没有跟在UDP头的后面哦,为什么我能够正确获取长度,端口等信息,却没办法获取UDP数据包里的详细内容?? ethd=(PETH)pbuff;//定义以太头 iphd=(PIP_HEADER)((PCHAR)pbuff+14);//定义IP头 iphdlen=(iphd->iph_verlen...
是不是UDP的数据内容没有跟在UDP头的后面哦,为什么我能够正确获取长度,端口等信息,却没办法获取UDP数据包里的详细内容??
ethd=(PETH)pbuff;//定义以太头
iphd=(PIP_HEADER)((PCHAR)pbuff+14);//定义IP头
iphdlen=(iphd->iph_verlen&0xf)*4;//计算IP头长度
udphd=(PUDP_HEADER)((PCHAR)iphd+iphdlen);//定义UDP头
DbgPrint("端口1:%d",shtons(udphd->sport));
DbgPrint("端口2:%d",shtons(udphd->dport));
DbgPrint("长度:%d",shtons(udphd->len);
memset(bbff,0,255);
sprintf(bbff,"%s",((PCHAR)udphd+8));
DbgPrint("数据:%s",bbff);
结果是获得端口1,2和长度的值,数据全部是0……
谁能帮帮我?
ethd=(PETH)pbuff;//定义以太头
iphd=(PIP_HEADER)((PCHAR)pbuff+14);//定义IP头
iphdlen=(iphd->iph_verlen&0xf)*4;//计算IP头长度
udphd=(PUDP_HEADER)((PCHAR)iphd+iphdlen);//定义UDP头
DbgPrint("端口1:%d",shtons(udphd->sport));
DbgPrint("端口2:%d",shtons(udphd->dport));
DbgPrint("长度:%d",shtons(udphd->len);
memset(bbff,0,255);
sprintf(bbff,"%s",((PCHAR)udphd+8));
DbgPrint("数据:%s",bbff);
结果是获得端口1,2和长度的值,数据全部是0……
谁能帮帮我?
|
sprintf(bbff,"%s",((PCHAR)udphd+8));
用memcpy(bbff, udphd + 8, len);
用memcpy(bbff, udphd + 8, len);
|
端口尽量设置在1024以上的端口。