TCP数据包校验和

时间:2015-05-26 20:03:25

标签: c++ sockets tcp

我不知道如何做到这一点,我有一个游戏,我想在数据包上创建校验和,所以如果骗子想要改变数据包,我会拒绝他。

到目前为止,我有这个:

bool Checksum(unsigned char *buf)
{
    int checksum = 0;
    for (int i = 0; i < sizeof(buf); i++)
    {
    checksum += sizeof(buf[i]);
    }
    if (buf[2] == checksum)
    {
        return true;
    }
    else{
        return false;
    }
}

buf [2]始终是存储在每个正在发送的数据包中的大小;

所以我试着这样:

// receive function here
if (!Checksum(buf) == true)
    {

        printf("[CHECKSUM]: error");

    }
// return the buf

但我总是得到同样的信息,请帮助一下?非常感谢。

0 个答案:

没有答案