c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down
http://blog.csdn.net/delphizhou/article/details/3078791
1 楼Delphi_Li(Delphi Li)回复于 2002-05-23 10:47:05 得分 0
假设客户端的程序名称为Client,那么首先再创建一个外壳程序Shell专门用来处理升级和启动Client的任务。在Ftp服务器上建立一个Ini文件保存服务器上Client程序的一些版本信息。Shell程序主要处理以下工作:读取本地的Ini文件,读取ftp服务器上的Ini,然后比较他们,如果有新版本则从FTP服务器上下载,然后运行Client,否则直接运行Clinet
2 楼noflybird(东方不亮西方亮)回复于 2002-05-23 10:49:20 得分 0
你的思路应该是这样:
在client端有一个模块,该模块可以在程序启动或者用户想升级时检查server端是否有最新的信息,若有,指定ftp服务器down 升级文件。3 楼rwdx(忆)回复于 2002-05-23 10:59:39 得分 0
在客户端主程序中启动时检测服务端的文件有没有更新,有的话就启动更新程序,更新程序然后关闭主程序进行更新,最后完再启动主程序
4 楼lxpbuaa(桂枝香在故国晚秋)回复于 2002-05-23 11:04:46 得分 0
我在项目中是这样做的:
1、在服务端建一张表,包含项目中所有文件的信息(包括版本)。我其实还加了另一表,用于保存文件下载服务器的信息。 2、客户端每次启动时从服务端取来她自己的版本存入注册表。然后判断,注册表的版本是不是比服务端低,如果低,则启动一个外部下载程序下载新版。 3、当服务端版本更新时,修改数据库的文件信息。 ————————————————————————————————— MaximStr := '宠辱不惊,看庭前花开花落,去留无意; 毁誉由人,望天上云卷云舒,聚散任风。'; if Not Assigned(I) then I := TI.Create(Nil); I.Maxim := MaximStr; I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等'; I.Desire := '加不加分随你'; —————————————————————————————————5 楼redbirdli(火鸟)回复于 2002-05-23 11:23:40 得分 0
为什么要维护那么多程序,浪费那么多资源呢?
在Client和Server上都开一个Socket,作用和应用的一样,即Client和Server 当Client的Socket向Server请求时, 发送去Client的版本信息(可用API GetFileVersionInfo得到),Server接收后与Server机器某文件夹下的新Client程序比较,前者旧于后者则向此Client发送新文件,Client接收并另名保存,在关闭程序前制作并调用一个bat文件如: del client.exe ren new.exe client.exe client.exe del self.bat 升级成功