自动更新程序设计实现思路

来源:互联网 发布:mac没有新建文件夹 编辑:程序博客网 时间:2024/04/30 02:52

自动更新程序设计实现思路

 

        由于业务需要,以前的单个文件自动升级无法满足当前的普遍需要,必须想做一种懒人的自动升级办法,也就是每次程序启动前必须进行实时更新后才可以运行程序。

         若准备让客户端程序实施自动更新,必须的前提条件是:

     1. 专用更新服务器支持。

     2. 客户端每次启动的时候都检查更新。

   

     详细的分,应该如下:

    

     服务器端:

         1自动更新服务器可单独架设,也可和其他服务器一起使用。

         2 自动更新服务器必须维护一个更新列表。比如说是Update.XML。列表内维护需要监视更新的文件名称,版本号。

         3 服务器端必须可以根据目录内文件内,自动生成Update,XML文件。

 

        客户端:

        1.      客户端每次启动前都必须检测服务器当前版本号,务必使每次更新后及时的进行更新至最新版本。

        2.      客户端自动更新在主程序之前运行,自动连接到服务器,并下载服务器的文件列表。

        3.      将下载的文件列表与本地列表相比较,若有不同,则自动更新不同的内容。下载至临时目录。下载完毕后复制到程序目录。

为了证明以上思路是否可行,必须拿一个现成的自动升级来分析分析.正好今日在玩一款游戏,暂就拿他分析分析看看这款游戏是如何做的自动升级.

自动升级——

 

服务端维护一个程序全部的列表,程序自动将服务端的列表下载到本地,并且读取文件名和mod5

例如:http://update3.gc73.com/update/gamecity/lobby/files.dat

 

 

在服务器维护了一个完整的安装包,安装包内涵盖了全部升级所需要的文件。。。。

 

基本上升级的事情已经分析的差不多了。。。。

1.      客户端启动游戏的时候,首先启动的是自动升级的程序,自动升级的程序自动到网站上下载一个全部文件的列表表单和MD5码。。。

2.      通过分析和比较以上MD5是否相同,如果不相同就调用自动升级。。。。

3.      自动下载到指定的目录下,然后关闭自动升级,并且同时启动主程序。。。。。

 

网站更新目录:

http://update1.gc73.com/update/

列表表单

http://update3.gc73.com/update/gamecity/lobby/files.dat

 

文件及说明

文件名称

文件说明

 

CompeteResult.run

CompeteResult.exe

必须传递参数才可以运行。Windows对话框程序,程序带资源。

Game.conf

可用记事本打开

游戏记录信息

[游戏ID]

游戏路径

执行程序名称

游戏URL地址

游戏URL地址_WT问题?

检查更新次数

强制更新次数

玩家满人人数

Ins_ver.dat

可用记事本打开

记录更新文件名称???

lineselect.dat

可用记事本打开

行选择???

Lobby.exe

自动更新程序

自动更新程序

Lobby.run

Lobby.exe

客户端主程序

Login2.dat

可用记事本打开

 

Login.dat

可用记事本打开

记录登陆用户名

Server2.dat

可用记事本打开

服务地址和端口

Server.dat

可用记事本打开

服务地址和端口

Serverrpp.xyz

记事本

记录类似MD5数据集

Setkey.dat

可用记事本打开

未知

Unin.exe

应用程序

未知

Uninst.exe

反安装程序

卸载程序

Update.dat

可用记事本打开

自动升级网络地址

UpDate.p

未知

更新辅助程序

Updatetime.dat

记事本

更新程序时间

url.conf

记事本

网址记录集

url.dat

记事本

网址

 

   咱已经把本地文件和网络文件统统都分析了一个遍,现在要做的就是动手去写,去实现。当然,如果能少写个工具最好了。我记得安装同花顺软件的时候下载过一个MD5码生成器的小东西。暂且先凑合用着,呵呵。

原创粉丝点击