在看网上的一篇文章《Windows 2000下的Raw Socket编程》
http://www.20cn.net/ns/wz/comp/data/20020818035339.htm
其中有一点不能理解,就是计算ip首部校验和的部分
文章中代码如下
memcpy(szSendBuf, &ipHeader, sizeof(ipHeader));
memcpy(szSendBuf+sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader));
memset(szSendBuf+sizeof(ipHeader)+sizeof(tcpHeader), 0, 4);
ipHeader.checksum=checksum((USHORT *)szSendBuf, sizeof(ipHeader)+sizeof(tcpHeader));
这段代码是把ip首部和tcp首部copy到一个buffer,再对这个buffer做校验和可以看tcpip详解中说,ip首部校验和只是对ip首部进行计算。
而不是对整个ip包进行计算难道这篇文章中的代码有错误?!
http://www.20cn.net/ns/wz/comp/data/20020818035339.htm
其中有一点不能理解,就是计算ip首部校验和的部分
文章中代码如下
memcpy(szSendBuf, &ipHeader, sizeof(ipHeader));
memcpy(szSendBuf+sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader));
memset(szSendBuf+sizeof(ipHeader)+sizeof(tcpHeader), 0, 4);
ipHeader.checksum=checksum((USHORT *)szSendBuf, sizeof(ipHeader)+sizeof(tcpHeader));
这段代码是把ip首部和tcp首部copy到一个buffer,再对这个buffer做校验和可以看tcpip详解中说,ip首部校验和只是对ip首部进行计算。
而不是对整个ip包进行计算难道这篇文章中的代码有错误?!
解决方案 »
- Crichedit文本如何识别有换行?
- CAsyncSocket的函数OnClose(int nErrorCode)的问题
- ocx控件怎么会让对话框无法显示
- 在IE浏览器中如何确定鼠标下的是图片,类似qq眩采工具栏--就是在IE中,当鼠标移动到图片上时,会弹出一个对话框,可以将图片保存等.
- 判断文件已被改动,需要重新读取,在View里出现循环调用问题
- 急问!!JPG在PICTURE控件里显示!!!
- 在线等,小问题,如何把日期型转化为字符型,马上结!!!
- 为什么自己写的类不能加入到MFC的工程中?
- 如果你是环保注意者,你爱环保,并且愿意作出努力,请进。
- MFC多线程,在同一窗口下运行显示
- 急死了,这个注册表函数怎么用呀,我试了一天了也不对,大家帮帮我吧所有分给大家
- 问个很basic的问题,动态库和静态库应该如何装载,两者有什么区别?
所以此代码有错。