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

データを乗算すると、送信する数が非常に多くなり、数が正しいという確信はあまりありません。そして、加算は潜在的なオーバーフローの問題に遭遇します。そのため、xorを使用するのが通例です。

または、 http://en.wikipedia.org/wiki/Error-correcting_codeを読んで、少数のエラーを検出し、場合によっては修正できる、より優れたソリューションを入手することもできます。

于 2012-05-07T17:45:42.690 に答える
0

ここでの最良の説明:

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

CRC 関数は、言語のネットワーク ライブラリで利用できます。

于 2012-05-11T16:27:08.367 に答える