怎么样计算tcp的校检值?有没有相应的api?
如题所问 问题点数:100、回复次数:7Top
1 楼iorikingdom(iori)回复于 2004-08-03 00:12:33 得分 80
RFC里面说的
// 获取数据校检和
USHORT CNetwork::CheckSum(USHORT *buffer, int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size )
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}Top
2 楼howtotell(从何谈起)回复于 2004-08-03 00:15:09 得分 20
USHORT checksum(USHORT *buffer, int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size )
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
Top
3 楼howtotell(从何谈起)回复于 2004-08-03 00:15:43 得分 0
有被抢先了.郁闷...Top
4 楼iorikingdom(iori)回复于 2004-08-03 00:17:50 得分 0
嘿嘿,楼上这么多猩猩,分留给我吧,我穷死了Top
5 楼qcxlu(卢)回复于 2004-08-03 00:21:47 得分 0
大虾们,里面的里面的参数是什么意思啊?我不太看得明白????Top
6 楼qcxlu(卢)回复于 2004-08-03 00:28:06 得分 0
呵呵,我弄明白了,知道了,多谢了!Top
7 楼qcxlu(卢)回复于 2004-08-03 00:30:29 得分 0
我要结贴了,给分的原则是,先解决问题的多给。现在就结了!!!Top




