凯纳实训-第三阶段(8.8-8.14)

 
古城
@ 2007.08.25
分类:有本日记
点击:2143  评论:0
 
 
 
第三阶段(8.8-8.14):完成Update在线升级程序

首先分别试验了socket捕获HTTP数据包,解决了gethostbyname()获取主机信息的问题,分别实现了主机域名解析,TCP连接,HTTP数据包分析,文件保存等功能。所以在理论上保证了在线升级程序的可行性。
接下来需要的是具体处理流程的设计。写了《在线升级程序详细设计》文档(包含升级流程说明、模块划分、模块详细设计、详细处理流程图、参考知识:HTTP协议简介和MD5简介),然后提交到SVN上,本以为设计的很好了,很多细节地方都特别注意。结果发现连最基本的版本验证和MD5校验等都没有设计进升级流程里面,好端端的升级程序变成了一个网络下载器。可见在分析实际问题经验严重不足,或者是说方法不对,没有从需求入手导致设计偏离主题。这点以后需要注意并改正。
最终在线升级程序的总体流程为
1.下载升级配置文件update.ini
2.从升级配置文件获得版本等信息
3.获得主程序(比如SuperClean的)版本
4.校对版本号,需要升级则继续
5.选择服务器列表
6.下载文件
7.MD5校验
8.升级日志
具体编码时,先以函数形式细分为小块:域名解析、TCP连接、HTTP协议数据包分析、从HTTP数据包中获取文件,保存文件,获取文件版本,分析.ini配置文件,MD5校验,记录日志等,再按详细设计文档的处理流程图实现在线升级程序的具体功能。
完成了Update在线升级程序之后,把SuperClean单机版和Update在线升级程序连接起来了,可以成功完成SuperClean的升级过程。
后来又做了些必要的修改,增加了config.h作为编译时的配置文件,config.h里面是工程的宏定义,通过改变这些宏定义可以很方便的将Update在线升级程序运用到其他各种软件的升级过程。
 
 
 
 
 

本文评论

 
 

发表评论

你的评论
← 填你的昵称
以下内容非必填,可根据需要填写
← 可以展示在你的评论上方
← 不会在页面展示
← 不会在页面展示
← 只给我看?勾选上
这是一个别人称之为角落的世界
幸而,它的确是我的世界