我不知道如何做到这一点,我有一个游戏,我想在数据包上创建校验和,所以如果骗子想要改变数据包,我会拒绝他。
到目前为止,我有这个:
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
但我总是得到同样的信息,请帮助一下?非常感谢。