我编写了一个代码来发送 TCP 数据包并接收确认数据包。
我想在代码中实现校验和以检查数据一致性,但未能编写代码(用 C 语言)来检查数据一致性。
请给我代码。
我编写了一个代码来发送 TCP 数据包并接收确认数据包。
我想在代码中实现校验和以检查数据一致性,但未能编写代码(用 C 语言)来检查数据一致性。
请给我代码。
执行此操作的常用方法是使用zlib 校验和函数之一,例如crc32
.
在源代码顶部添加
#include <zlib.h>
用类似的东西初始化CRC
my_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 上,希望其他人会建议使用什么。