我编写了一个代码来发送TCP数据包并接收确认数据包。
我想在代码中实现校验和以检查数据一致性但是无法编写代码(用C语言)来检查数据的一致性。
请给我代码。
答案 0 :(得分:1)
通常的方法是使用其中一个zlib checksum functions,例如crc32
。
在源代码的顶部添加
#include <zlib.h>
用
之类的东西初始化CRCmy_crc = crc32(0L, Z_NULL, 0);
然后根据需要添加数据,通常在某些循环上下文中
my_crc = crc32(my_crc, (unsigned char *)some_buffer_pointer, length_of_buffer);
请记住链接zlib库
-lz
如果你不想使用库函数,例如,你在MPU上,那么你可以使用http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/libkern/crc32.c?txt。
如果您的平台上没有zlib,可以从http://www.zlib.net/下载。
希望如果你在Windows上,其他人会建议使用什么。