讨论类似金山或瑞星等程序的自动升级的原理(300分)

H

htw

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家讨论一下类似金山或瑞星等程序的自动升级的实现原理和方法
文件传送用什么方式好呢? 是FTP还是用HTTP好呢?
谢谢!
 
无非就是启动一个升级程序,从网站上检查并下载更新文件,在本地实现升级
更新文件可以是替换,也可以用Patch的方法(有专门做patch的工具)
至于文件传送,无论FTP,HTTP都不是什么问题,关键在于你多注意一下错误处理的问题
比如文件传送失败、升级失败等要有相应的处理,不能因为升级失败导至软件使用不了。
 
我自己做了一个,用的是socket(tcp/ip),可以更新任何文件(写在配置文件中)。主要
步骤如下:
1、client向server连接
2、连接成功后,server向client发送所有升级文件信息列表(从配置中读取)
3、client收到文件信息列表后,根据文件信息和本地文件做比较,得出需要的文件,生成
文件信息列表返回给server。
4、server根据必须文件列表,逐个把文件读取出来,发送给client。
5、接收文件并保存到临时文件夹,成功后替换老文件,如果是升级本身,则编写一个批文件
(.bat)后退出,吊起批文件(删除本身,并替换为新文件,再启动)。
 
用http即可,
在ics中有个httpget的例子,可以通过http下载文件。
更新文件用 chenxz,的思路即可。
 
都可以啊,看文件大小了。小的话可以用 Http,大的话就 Ftp
 
用http吧,有个例子在哪个 INDY 的生产商的WEB上
 
问题:
1、如何更新升级程序?
2、更新正在使用的文件?
3、如果是数据库程序,要修改结构点办?
 
to chenxz
你的办法在Internet上可行吗?租用主机时点实现呀?
 
to chenxz

5、接收文件并保存到临时文件夹,成功后替换老文件,如果是升级本身,则编写一个批文件
(.bat)后退出,吊起批文件(删除本身,并替换为新文件,再启动)。
--------------------
用命令行会闪一下,总有不专业的感觉。
 
老兄,王寒松写过一个,你要吗?我发给你。
 
可以利用WINDOWS的定时任务来完成,但是可靠性不高.
如果是UNIX下面,就搞一下CRONTAB最方便了.
 
多谢先,劳驾发
_lyf@21cn.com
 
还是http方式好,Socket和FTP有时候会受到访问限制。
 
BlackDragon:
请把王寒松的那个程序发给我, 先谢谢了!
 
多人接受答案了。
 
顶部