0

我正在制作网络应用程序,它每次都不会发送良好的数据(大多数时候它们都被破坏了),所以我很难控制总和。在数据结束时,我将添加控制总和以检查它们是否有效。所以我不确定将每个数据(它们从 1 到 100)乘以 100、100^2、100^3... 并将它们相加是一个好主意。你有什么建议吗,不要做很大的数字(每个数据包中有很多数据)。示例:数据:1,4,2,77,12,32,5,52,23 我的解决方案:1,4,2,77,12,32,5,52,23, 100+40000+2000000+ 77* 10^4 ...当客户端收到数据包时,他将检查最后一个数据是否等于其他数据的总和。有没有更好的解决方案?

4

3 回答 3

0

将数据相乘会导致要传输的数字非常大,并且对数字正确的信心不足。加法会遇到潜在的溢出问题。这就是习惯使用异或的原因。

或者,您可以阅读http://en.wikipedia.org/wiki/Error-correcting_code以获得更出色的解​​决方案,这些解决方案可以检测,有时是纠正少量错误。

于 2012-05-07T17:45:42.690 回答
0

因为 128 是二进制的 10000000,所以只有 1 位用于子网划分,而有 7 位用于主机。我们将对 C 类网络地址 192.168.10.0 进行子网划分。

     192.168.10.0 = Network address
     255.255.255.128= Subnet mask
于 2013-08-14T06:35:18.473 回答
0

最好的解释在这里:

http://www.textfiles.com/programming/crc.txt

CRC 函数将在您语言的网络库中可用。

于 2012-05-11T16:27:08.367 回答