自动升级的分析

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