我已經使用NSURLConnection實現了下載部分。 現在我試圖爲CRC校驗添加一個更多的功能。 我通過維基百科閱讀了一些基本概念。 但我有點困惑如何開始。 任何人都可以給我這個提示嗎?謝謝crc在使用NSURLConnection時下載
btw ..我不是想自己設計整個crc部分。
我已經使用NSURLConnection實現了下載部分。 現在我試圖爲CRC校驗添加一個更多的功能。 我通過維基百科閱讀了一些基本概念。 但我有點困惑如何開始。 任何人都可以給我這個提示嗎?謝謝crc在使用NSURLConnection時下載
btw ..我不是想自己設計整個crc部分。
zlib的,它是包含與iOS,包括CRC32()函數:
uLong crc = crc32(0L, Z_NULL, 0);
crc = crc32(crc, [self bytes], (uInt)[self length]);
return crc;
注意,如下面零星消息註釋,CRC校驗被內置到TCP/IP。當然,還有其他原因可能會在iOS上執行CRC ......但是對數據包完整性進行基本檢查可能不是其中的一項。
如果你喜歡自己實現簡單的crc。 This可以提供幫助。
例如採用BSD 16位CRC算法:
- (NSInteger)getBSDcrc:(NSData*)data {
NSUInteger lendth = [data length];
char *byte = (char*)[data bytes];
NSInteger crc = 0;
for (int i = 0; i < length; ++i) {
crc = (crc >> 1) + ((crc & 1) << 15);
crc += byte[i];
crc &= 0xffff;
}
return crc;
}
你知道,這是沒有必要的,對不對?見下面的評論。 – Snips