- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
桌面软件的智能更新MagicUpdate更新原理
桌面软件的智能更新
——MagicUpdate更新原理
作者:陈秋明
Email: qmroom#126.com? [# = @]
?
测试环境:Win2000/XP/2003/Vista/Windows7
关键字:更新、多线程、断点续传、Ftp、Exe互嵌
?
?
MagicUpdate下载,请与本人联系
本文PDF下载
?
索引
1???? 摘要:... 2
1.1????? 使用到的技术:... 2
1.2????? 更新流程... 3
1.3????? 模块划分... 3
2???? 界面展示... 5
3???? 网络及多线程技术... 7
3.1????? 多线程下载和断点续传... 7
3.2????? Ftp上传下载... 7
3.3????? 多线程与主线程(界面)的数据交互... 8
4???? 更新细节... 10
4.1????? 更新模式... 10
4.2????? 文件结构设计... 10
4.2.1?????? 服务器端文件信息... 11
4.2.2?????? 客户端文件信息ClientConfig结构... 13
4.2.3?????? 管理端文件信息ManagerConfig结构... 14
4.2.4?????? 宏说明及文件路径的计算... 15
4.3????? 更新详细流程... 16
4.3.1?????? 管理端流程... 16
4.3.2?????? 客户端流程... 17
4.4????? 客户端命令行... 18
4.5????? 自我升级... 19
5???? 小结... 20
?
?
?
1?????? 摘要:
随着桌面软件文件的增多增大、版本升级频繁,有时因为改动了几个很小的几个dll文件,客户不得不从网站上重新下载整个安装包。并且开发人员不得不从繁忙的工作中抽出大量的时间来维护版本的升级,导致开发成本增加、维护难度大等诸多问题。有没有更完美的解决方案,来让软件自动升级到新版本呢?答案当然是肯定的。在当今网络技术技术迅速发展的时代,各个软件厂商各有各自的升级方法,现在我就谈谈我的解决方案。
1.1??? 使用到的技术:
关键技术:
????????? 多线程管理及交互
????????? Http下载和断点续传
????????? Ftp上传下载
????????? Vc++对Xml读写解析
????????? Md5算法
????????? 可执行程序Exe的相互嵌套
控件技术:
????????? 自定义三态树形控件CTreeCtrl和CListCtrl的互动
????????? 自定义CListCtrl,实现控件互嵌(进度条、编辑框、下拉框)
????????? 控件的自绘制
?
1.2??? 更新流程
1.???????? 管理端上传当前版本的文件到服务器;
2.???????? 客户端先自我更新,然后更新产品。获取服务器信息,判断是否需要更新。若需要则提示用户更新。
1.3??? 模块划分
?
2?????? 界面展示
管理端:
客户端:
自动模式下的更新提示:
升级程序自我更新:
?
3?????? 网络及多线程技术
3.1??? 多线程下载和断点续传
桌面软件的升级的方法有很多,如何自动的升级,当然少不了数据传输程序。为了能够穿透防火墙在广域网使用我采用了基于http的下载。
原理大致如下:
1.???????? 创建一个的空文件,大小为需要下载的文件大小+零时数据大小;
2.???????? 创建多个线程,同时利用CreateFile共享写打开临时文件,移动文件指针到数据块开始区域;
3.???????? 使用WinNet API,建立多个服务器连接,向服务器请求同一个文件的不同数据段的数据保存到同一个临时文件,并保存已下载的数据大小;
4.???????? 数据都读完后,修改文件大小为原来大小。
若下载中途网络中断,下次下载时,则可以从尾部文件信息中获取已下载的大小,便于继续上一次的下载。实现起来当然要考虑诸多细节方面,由于篇幅有限,就不详细说明。
3.2??? Ftp上传下载
利用WinNet函数很容易实现Ftp的上传下载,这里就不详细说明。
3.3??? 多线程与主线程(界面)的数据交互
交互的实现很复杂,用到了指针,回调函数,自己的消息队列等。要全部讲清楚确不容易,我就简要介绍一下。
1.???????? 定义消息结构
typedef struct _NotifyW3ctPara
{
???? int????? nIndex;??????????????? //同一个下载文件中线程索引
???? UINT nNotityType;??????????????? //消息类型
???? DWO
您可能关注的文档
- 案例分析注意问题.doc
- 案例分析流程.doc
- 案例分析浅析保险公司对被保险人在道路交通事故中无责任时的交强险赔偿限额.doc
- 案例分析海尔基于流程再造的组织结构创新.doc
- 案例分析物权1.doc
- 案例分析现实数学观与生活数学观.doc
- 案例分析的模板.docx
- 案例分析直接看这个.doc
- 案例分析研究.doc
- 案例分析空间中的角与距离.doc
- 2024年01月[江苏]北京银行南通分行(筹)社会招考笔试历年参考题库附带答案详解.docx
- 2024年01月[浙江]2024华夏银行绍兴分行社会招考笔试历年参考题库附带答案详解.docx
- 2025至2030年多路电话费用管理系统项目商业计划书.docx
- 2025至2030年宠物定时器项目商业计划书.docx
- 2025至2030年中国窗显式防毒面具行业投资前景及策略咨询报告.docx
- 2025至2030年中国半导体空调行业投资前景及策略咨询研究报告.docx
- 2025至2030年中国悬挂四铧梨行业发展研究报告.docx
- 2025至2030年中国硅整流变压器行业发展研究报告.docx
- 2025至2030年中国有机玻璃挤出内齿管行业投资前景及策略咨询报告.docx
- 2025至2030年光纤6位跳线架项目投资价值分析报告.docx
最近下载
- 铁路局招聘考试《铁路基础知识》100题及答案.docx
- 《QSY1237-2009-工艺和设备变更管理》.pdf
- 期末复习专项训练【实验题】(试题)小学科学五年级上册 教科版.docx VIP
- 农旅融合:推进乡村振兴,实现双赢.docx VIP
- 技术标书技术方案(完整资料).pdf VIP
- 13G311-1:混凝土结构加固构造.pdf VIP
- DB21_T 1565-2015预应力混凝土管桩基础技术规程.pdf
- 夏季防暑降温施工方案_夏季防暑降温施工方案夏季防暑降温工作方案.pdf VIP
- 危重症患者口渴的护理PPT.pptx
- 八年级人教版物理下《12.2滑轮》一等奖优秀教学设计 .pdf VIP
文档评论(0)