自动升级的分析

最近因为项目需要用到自动升级功能。自己晚上看了一下都不太满意,然后自己用vb写了一下。 大致思路如下。 因为要用到vb的winsock控件,但是winsock每次只能传输8k大小。通过先将收到的数据每次写入一个temp文件,然后再从temp文件中过滤掉http的文件头,保存成文件。 客户端需要用到2个winsock和一个timer,服务器端只要一个winsock控件即可。因为vb没有类似于序列化的功能,为了避免传输数据出错,使用xml来传递消息。其中一个winsock就是用来传递消息的,因为更新需要一次性更新大量文件。用一个timer每隔一段时间检查文件是否保存完毕,保存完毕后就继续下个文件。文件下载需要有一个http server或者是ftp server这个大家应该都知道怎么弄就不多说了。 具体思路是如下 client现象服务器发送命令,我这里发送的是类似这样的一端xml get updatefile server返回http server或者ftp server上的更新目录中的信息,包括文件名,大小,最后修改日期,等等,当然自己也可以实现基于版本号的更新。可以自己实现。然后还是通过xml来传递,但是考虑到生成的xml过大,所以需要分段发送,这点大家希望注意。 client获取server的文件信息后,和本地的进行比较,至于具体的比较规则自己可以设计,在此就不再赘述。 比较完后,client向http server或者ftp server发送需要更新的文件。 client每次获取数据后判断是否http server或者ftp server发送完毕,如果完毕就继续下载下一个文件。 最后选择目录将http server或者ftp server获取的文件保存到本地。 基本就是这样,写的可能比较乱,如果有什么不对还请大家指出。如需转载请说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值