NSURLConnectionを使用してダウンロードパートを実装しました。 今私はCRCチェックのためのもう一つの関数を追加しようとしています。 私はウィキペディアを通していくつかの基本的な概念を読みました。 しかし、私は始める方法がちょっと混乱しています。 誰も私にこのことのヒントを与えることができますか?ありがとうございましたNSURLConnectionを使用してダウンロードするためのcrc
btw ..私は自分でcrc部品全体を設計しようとしていません。 IOSを含まれ
NSURLConnectionを使用してダウンロードパートを実装しました。 今私はCRCチェックのためのもう一つの関数を追加しようとしています。 私はウィキペディアを通していくつかの基本的な概念を読みました。 しかし、私は始める方法がちょっと混乱しています。 誰も私にこのことのヒントを与えることができますか?ありがとうございましたNSURLConnectionを使用してダウンロードするためのcrc
btw ..私は自分でcrc部品全体を設計しようとしていません。 IOSを含まれ
ZLIBは、CRC32を含む()関数:
uLong crc = crc32(0L, Z_NULL, 0);
crc = crc32(crc, [self bytes], (uInt)[self length]);
return crc;
なお、以下の切れ端コメント、CRCはTCP/IPに組み込まれています。 iOS上でCRCを行う理由は他にもありますが、パケットの完全性のための基本的なチェックは、おそらくそれらの1つではありません。
単純な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