【发布时间】:2013-10-02 09:34:08
【问题描述】:
我在一个字节数组上生成了一个CRC 整数,并将它也转换为 4 字节数组。我使用了this CRC16 类,它使用生成多项式=0x1021;,这意味着1 + x + x^5 + x^12 + x^16
我将我的字节数组和CRC 通过UDP 发送到服务器。在服务器端,我喜欢检查字节数组是否正确传输。据我了解,我可以将与 crc-array 连接的数据数组除以生成多项式。我理解对了吗?以及如何在Java中通过生成多项式执行data+crc除法?
我见过的解决方案只是在数据上再次生成 crc 代码并比较生成的 crc 代码是否相同,但这可能是 crc-codes 的用途。
【问题讨论】:
-
重新计算CRC并进行比较是最简单的事情。
-
顺便说一句,您的检查是不必要的,因为 UDP 确实保证 byte[] 将与发送的相同,因为 UDP 在发送数据报之前使用校验和执行它自己的检查。
-
这更多是出于教育原因,而不是真正的用例,但如果您参考此声明会很好;)
-
当然:en.wikipedia.org/wiki/User_Datagram_Protocol 如果您想要更“官方”的内容,可以点击其中的链接
标签: java udp bytearray crc crc16