我已经使用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