c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down
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
Top
2 楼noflybird(东方不亮西方亮)回复于 2002-05-23 10:49:20 得分 0
你的思路应该是这样:
在client端有一个模块,该模块可以在程序启动或者用户想升级时检查server端是否有最新的信息,若有,指定ftp服务器down 升级文件。Top
3 楼rwdx(忆)回复于 2002-05-23 10:59:39 得分 0
在客户端主程序中启动时检测服务端的文件有没有更新,有的话就启动更新程序,更新程序然后关闭主程序进行更新,最后完再启动主程序Top
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 := '加不加分随你';
—————————————————————————————————
Top
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
升级成功Top
c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down的更多相关文章
- 分享一个客户端程序(winform)自动升级程序,思路+说明+源码
做winform的程序,不管用没用过自动更新,至少都想过自动更新是怎么实现的. 我这里共享一个自动更新的一套版本,给还没下手开始写的人一些帮助,也希望有大神来到,给指点优化意见. 本初我是通过sock ...
- Delphi程序的自动升级功能的实现(AutoUpdate使用指南)
在UtiMnid组件下,利用auAutoUpgrader实现自动升级(已经测试通过) 第一步:下载AutoUpgrader.Pro.v4.6.4. 第二步:打开AutoUpgrader.Pro.v4. ...
- 微信小程序版本自动更新弹窗提示
代码如下: onLaunch () { if (wx.canIUse('getUpdateManager')) { const updateManager = wx.getUpdateManager( ...
- 黄聪:禁止wordpress版本自动升级的解决方案
在WordPress配置文件中找到wp-config.php,添加如下常量 define( 'AUTOMATIC_UPDATER_DISABLED', true );
- winform软件版本检测自动升级开发流程(转)
注:按此博文试验OK 基于C/S的开发有开发效率高,对于业务逻辑复杂,且不需要外网使用具有较大优势,但是弊端也不可忽视,就是升级麻烦,不可能每写一个版本就要拿着安装包给每个人去替换,这样不仅搞得自己很 ...
- uniapp 证书 打包上线GooglePlay app自动升级
uniapp Android证书 打包上线GooglePlay app自动升级 1.Android证书申请 要安装jdk并配置环境变量. keytool -genkey -alias android ...
- 定时自动从FTP服务器取数据脚本
环境需求:某些情况下经常需要向FTP服务器取文件,可以用定时任务执行简单脚本自动去取相应文件. 一般用法: ~]# ftp IP地址 端口 //ftp命令可以通过yum install ftp方式 ...
- VC FTP服务器程序分析(二)
上面讲到了CClientThread类,打开这个类的实现,这个类实现了4个函数.依次分析: 1.InitInstance 其说明如下:InitInstance必须被重载以初始化每个用户界面线程的新 ...
- shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上
shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上 naonao_127关注2人评论19401人阅读2012-06-08 11:26:16 生产环境下脚本自动备份脚本是 ...
随机推荐
- SIRI课程表
wen 周一@0@{今天没课哦}周一 周二今天共一节课 第2节,可编程控制器应用,11号教学楼1 0 3房间 周二 周三今天共三节课 第二节,过程控制系统,2号楼2 1 0房间,第三节机械制造技术11 ...
- VS Code使用技巧整理
转自:https://blog.csdn.net/u011127019/article/details/58586129 https://blog.csdn.net/sgdd123/article/d ...
- synchronize早已经没那么笨重
我发现一些同学在网络上有看不少synchronize的文章,可能有些同学没深入了解,只看了部分内容,就急急忙忙认为不能使用它,很笨重,因为是采用操作系统同步互斥信号量来实现的.关于这类的对于synch ...
- iOS 蒲公英第三方打包平台
http://www.pgyer.com/doc/view/ios_install_failed
- Redis学习笔记(四)集合进阶
1.组合与关联多个集合 差集: SDIFF key1 [key2...](返回存在于key1但不存在其他集合中的元素) SDIFFSTORE destination key1 [key2...](将存 ...
- 原生ajax请求的五个步骤
//第一步,创建XMLHttpRequest对象 var xmlHttp = new XMLHttpRequest(); function CommentAll() { //第二步,注册回调函数 xm ...
- HTML 5 <a> 标签
href 属性 定义和用法 href 属性规定链接的目标地址. 如果未使用 href 属性,则 <a> 标签不是链接,而是链接的占位符. HTML 4.01 与 HTML 5 之间的差异 ...
- 日常:论我的T3是如何苟掉的
说起来都是泪啊 T3的bfs一直不对,我想死. 考试时候苟了两个小时,死活找不到错误(因为lca和离散化都码出来了,太乱) 最后把bfs单独提出来,发现在bfs里面输出的f[ly][0]都是正确的,到 ...
- 点击按钮打开一个新的窗口 关键词(Intent, setData , putExtra , startActivity |Bundle)
M3U8_Video_demo 项目 //------------------ 创建发送private void playVideo(String source, String title) { if ...
- Openjudge-4110-圣诞老人的礼物
这一题是一道贪心的题目,但是它比较特殊的地方在于糖果可以分开拿,我们不必整箱拿,所以我们可以直接就把糖果按照价值比从大到小排序,然后整箱装不下的时候,剩余重量乘以它的价值比,这样就算出来了. 对于结构 ...