这是以下规范。
我使用 python3 使用简单协议(protocol)通过 TCP/IP 与服务器通信,如图所示。
我想知道如何在这里计算 CRC 校验和?。正如您在命令包规范中看到的那样,它必须是 1 个字节。
最佳答案
我假设在 Python 3 中,如果你有以字节为单位的数据包,即说 packet = bytes(0xF0, 0xF0, 0xDE, 0xAD, 0xBE, 0xEF, 0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0xF0)
,校验和将只是这些字节之和的 1 补码的最低有效字节,即 (0 - sum(packet)) & 0xFF
。
因此,如果您有有效负载payload
,这将是将其变成完整数据包的代码:
packet = b'\xF0\xF0' + payload + b'\xF0\xF0'
packet += bytes([(0 - sum(packet)) & 0xFF])
关于c - 我如何计算以下 TCP/IP 协议(protocol)的 CRC 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43652773/