-1

我编写了一个代码来发送 TCP 数据包并接收确认数据包。

我想在代码中实现校验和以检查数据一致性,但未能编写代码(用 C 语言)来检查数据一致性。

请给我代码。

4

1 回答 1

1

执行此操作的常用方法是使用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 上,希望其他人会建议使用什么。

于 2013-04-15T03:40:11.930 回答