- #include<iostream>
- using namespace std;
- struct IP
- {
- unsigned short check;
- unsigned int data;
- }ip={0,5};
- unsigned short checksum(unsigned short *buf,int nword)
- {
- unsigned long sum;
- for(sum=0;nword>0;nword--)
- sum += *buf++;
- sum = (sum>>16) + (sum&0xffff);
- sum += (sum>>16);
- return ~sum;
- }
- int main()
- {
- // sender
- ip.check = checksum((unsigned short*)&ip,1);
- // send ip
- // recver
- // recv ip
- if( checksum((unsigned short*)&ip,1) == 0)
- {
- cout << "数据无损坏!";
- }
- getchar();
- getchar();
- }
校验和
最新推荐文章于 2016-11-03 14:52:13 发布