2012-05-07 81 views
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 ... 當客戶端收到數據包時,他會檢查最後的數據是否等於其他數據的總和。 有沒有更好的解決方案?網絡連接的控制總和

+1

你的意思是'校驗和'?這聽起來像你需要的是一個CRC(循環冗餘校驗)。或者修復你的網絡代碼:-) – EJP

回答

0

乘以數據導致一個非常大的數字傳輸,而不是很多的信心,數字是正確的。另外還會遇到潛在的溢出問題。這就是爲什麼習慣使用xor。

或者您可以在http://en.wikipedia.org/wiki/Error-correcting_code上閱讀,以獲得更加有趣的解決方案,可以檢測並有時糾正少量錯誤。

0

因爲128是二進制10000000,子網只有1位,主機有7位。我們將子類C類網絡地址192.168.10.0。

 192.168.10.0 = Network address 
    255.255.255.128= Subnet mask