- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UDP校验和算法
UDP校验和算法
#include Winsock2.h
#include stdio.h
#define IP_HDRINCL 2 // Header is included with data.
typedef struct _IPHEADER
{
UCHAR VerHeadLen; //版本号和头长度
UCHAR TOS; //服务类型
USHORT Length; //IP包总长度
USHORT ID; //IP包唯一标识
USHORT Flags; //标志
UCHAR TTL; //生存时间
UCHAR Protocol; //协议
USHORT Checksum; //校验和
ULONG SourceIP; //源IP地址
ULONG DestIP; //目标IP
}IPHEADER;
typedef struct _UDPHEADER
{
USHORT SourcePort; //源端口
USHORT DestPort; //目的端口
USHORT Length; //包长度
USHORT CheckSum; //校验和
}UDPHEADER;
USHORT checksum(USHORT * buff, int size)
{
ULONG cksum = 0;
while (size 1)
{
cksum += *(buff++);
size -= sizeof(USHORT);
}
if(size)
{
cksum += *((UCHAR*)buff);
}
cksum = (cksum 16) + (cksum 0xffff);
cksum += (cksum 16);
return (USHORT)(~cksum);
}
void UdpHeaderChecksum(IPHEADER *IpHeader,UDPHEADER *UdpHeader,char * payload,int payloadlen)
{
char buf[1024];
char *ptr = buf;
int chksumlen = 0;
ULONG zero = 0;
//包含源IP地址和目的IP地址
memcpy(ptr,IpHeader-SourceIP,sizeof(IpHeader-SourceIP));
ptr += sizeof(IpHeader-SourceIP);
chksumlen += sizeof(IpHeader-SourceIP);
memcpy(ptr,IpHeader-DestIP,sizeof(IpHeader-DestIP));
ptr += sizeof(IpHeader-DestIP);
chksumlen += sizeof(IpHeader-DestIP);
//8位0域
memcpy(ptr,zero,1);
ptr += 1;
chksumlen += 1;
//协议
memcpy(ptr,IpHeader-Protocol,sizeof(IpHeader-Protocol));
ptr += sizeof(IpHeader-Protocol);
chksumlen += sizeof(IpHeader-Protocol);
//UDP长度
memcpy(ptr,UdpHeader-Length,sizeof(UdpHeader-Length));
ptr += sizeof(UdpHea
您可能关注的文档
- SolidWorks 2010 SP3.1_CN_Win32_Limit 安装说明.doc
- SolidWorks二次开发COM基础知识.doc
- SolidWorks 250个疑问.doc
- SolidWorks的应用技巧(长篇).doc
- Sony RM-3000学习型遥控器中文说明书.doc
- source_insight教程(快捷键).doc
- spi eeprom读写C语言实现.doc
- spring bean的属性.doc
- spj实验一、二及习题三.doc
- Spring XML配置的十二个最佳实践.doc
- 长春市2026届高三质量监测(一)一模历史试卷(含答案)原卷.doc
- 长春市2026届高三(一模)历史试卷(含答案).doc
- 2026届八省联考高考日语试卷试题打印版(第一次).doc
- 2026届八省联考高考历史试卷试题打印版(第一次).doc
- 2026届八省联考高考物理试卷试题及答案详解(精校打印).doc
- 开封市2026届高三年级第一次质量检测(一模)数学试卷(含官方答案)原卷.doc
- 湖南省金太阳市、县级优质高中协作体2026届高三元月联考语文试卷(含答案及解析).doc
- 湖南省金太阳市、县级优质高中协作体2026届高三元月联考物理试卷(含答案及解析).doc
- 湖南省金太阳市、县级优质高中协作体2026届高三元月联考数学试卷(含答案及解析).doc
- 湖南省金太阳市、县级优质高中协作体2026届高三元月联考地理试卷(含答案及解析).doc
原创力文档


文档评论(0)