社区
网络编程
帖子详情
明白人进,对文件进行CRC32校验(C语言)?
theflyfish2
2011-10-08 07:15:04
如何对文件产生CRC32校验码;(用于网络传输)
我的思路:把整个文件都读入到buffer中,然后调用CRC32校验函数
问题1:CRC32校验时,一次性能处理的数据长度有多大?好几M的文件能一次性处理,产生一个CRC校验码吗?
问题2:文件整体读入buffer再整体处理,会不会显得很笨拙?好几M的文件占用的内存会不会太大。有没有更好的方法?
谢谢!
...全文
715
10
打赏
收藏
明白人进,对文件进行CRC32校验(C语言)?
如何对文件产生CRC32校验码;(用于网络传输) 我的思路:把整个文件都读入到buffer中,然后调用CRC32校验函数 问题1:CRC32校验时,一次性能处理的数据长度有多大?好几M的文件能一次性处理,产生一个CRC校验码吗? 问题2:文件整体读入buffer再整体处理,会不会显得很笨拙?好几M的文件占用的内存会不会太大。有没有更好的方法? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
theflyfish2
2011-10-10
打赏
举报
回复
哦了,谢谢大家
用户 昵称
2011-10-09
打赏
举报
回复
如果文件就几兆,那么就都读进系统里面吧,现在的操作系统都很智能,分配的内存说不定在什么地方。
saiyaman5
2011-10-09
打赏
举报
回复
分配一个buffer,反重使用就行了,读一次处理一次,再读一次.
theflyfish2
2011-10-09
打赏
举报
回复
[Quote=引用 2 楼 jennyvenus 的回复:]
crc 都有个初始值,只要下次crc时维护好这个初始值,那么分段crc跟一块crc是一样的。
[/Quote]
谢谢!如果一块CRC的话,那文件的处理能不能再优化些,必须都得一起读入buffer么
buyong
2011-10-09
打赏
举报
回复
send最大值:using getsockopt to retrieve the value of socket option SO_MAX_MSG_SIZE
morebread
2011-10-09
打赏
举报
回复
[Quote=引用 6 楼 theflyfish2 的回复:]
感谢大家的回答,我的CRC校验时用于嵌入式片上机与服务器端通讯。还有两个问题:
1.如果使用分开的CRC校验,那一次处理的数据长度应该为多少?给个参考数字
2.在socket通讯中使用send时,一次能发送的数据长度一般为多少?给个参考数字
[/Quote]
分包的长度应该根据你实际应用的场景的网络状况决定,如果单片机性能好,网络环境也好,那么每包的大小可以大些,如果单片机性能不怎么样,网络环境也差,那么包可以小一些。这个没有一个具体的数字的。
而且,send函数在应用层仅仅是将需要发送的数据放入协议栈的发送缓冲区,不是说你调用一次send,系统就将你传入的buffer打包成一个网络包发出去了
MagicFuzzX
2011-10-09
打赏
举报
回复
创建文件内存映射,将文件读取到内存中,然后将buffer地址传给计算crc32的函数就行了
theflyfish2
2011-10-09
打赏
举报
回复
感谢大家的回答,我的CRC校验时用于嵌入式片上机与服务器端通讯。还有两个问题:
1.如果使用分开的CRC校验,那一次处理的数据长度应该为多少?给个参考数字
2.在socket通讯中使用send时,一次能发送的数据长度一般为多少?给个参考数字
用户 昵称
2011-10-08
打赏
举报
回复
crc 都有个初始值,只要下次crc时维护好这个初始值,那么分段crc跟一块crc是一样的。
诶呦
2011-10-08
打赏
举报
回复
应该是多长都可以吧,只用过CRC16的校验
《
C语言
/C++学习指南》加密解密篇(安全相关算法)
本套视频教程介绍加密解密相关...具体包含: (1) 数据转换(HEX和base64) (2) 对称加密 (DES, 3DES, AES) (3)
校验
CRC
, MD5摘要, SHA1摘要 (4) 数字签名(HMAC-SHA1) , 并介绍了crypto++这个算法库的使用方法。
crc
16
校验
c语言
单片机实现,三种常用的
CRC
16
校验
算法的C51程序的优化
CRC
校验
又称为循环冗余
校验
,是数据通讯中常用的一种
校验
算法。它可以有效的判别出数据在传输过程中是否发生了错误,从而保障了传输的数据可靠性。
CRC
校验
有多种方式,如:
CRC
8、
CRC
16、
CRC
32
等等。在实际使用中,我们经常使用
CRC
16
校验
。
CRC
16
校验
也有多种,如:1005多项式、1021多项式(
CRC
-ITU)等。在这里我们不讨论
CRC
算法是怎样产生的,而是重点落在几种算法的C51程序的...
C语言
实现
CRC
-16 MODBUS
校验
码的生成,浅谈
CRC
-16检验码
关于
CRC
校验
码
CRC
又称循环冗余
校验
,是用来检测或
校验
数据传输或者保存是否出现错误的一种方法。我也看了很多关于
CRC
校验
码的文章,如果有没看懂的请看
CRC
码计算及
校验
原理的最通俗诠释这一篇文章,文章向我们介绍了
CRC
校验
码是通过什么方法计算出来的,文章挺通俗易懂的。
校验
码的长度可以根据自己的意愿来定,也可以根据国际上的标准来定,根据自己的实际情况来定,
校验
码越长,出错的概率肯定就越小。
校验
码的唯一性问题 为什么说
校验
码也会出错呢,这就涉及到
校验
码的唯一性问题的探讨上了,我们知道,我们要发一串数据,
校验
CRC
算法原理及
C语言
实现
原文转自:http://blog.chinaunix.net/uid-10386087-id-2959151.html
CRC
原理介绍:
CRC
的英文全称为Cyclic Redundancy Check(Code),中文名称为循环冗余
校验
(码)。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。
CRC
计算与普通的
CRC
算法原理及
C语言
实现(一)
CRC
原理介绍:
CRC
的英文全称为Cyclic Redundancy Check(Code),中文名称为循环冗余
校验
(码)。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。
CRC
计算与普通的除法计算有所不同。普通的除法计算是借位相减的,而
CRC
计算则是异或运算。任何一个除法运算都需要选取一个除数,在
CRC
运算中我们称之为po
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章