艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)相关的知识,希望对你有一定的参考价值。
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)
该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定。
项目地址:http://www.51aspx.com/code/MSDCArtMengFileUpload
咨询qq:286275658
演示程序下载地址:http://pan.baidu.com/s/1geVfmcr
自动升级的原理:
(1)客户端登录后,判断本地配置文件中的版本号与服务器的版本号,如果小于服务器的版本号,则关闭本程序,启动升级程序
//启动升级程序 private void AppUpdate() {
//联系服务器 请求服务器的版本号 UpgradeConfig upgradeConifg = AppOutter.TcpConn.SendReceiveObject<string, UpgradeConfig>("GetUpMsg", "ResUpMsg", 5000, "Test");
//如果服务器的版本号大, 则启动升级程序 if (upgradeConifg.AppVersion > GetMenuVersion()) {
//从配置文件中获取升级程序的名称,启动该程序 string upgradeAppPath = System.Configuration.ConfigurationManager.AppSettings["UpgradeApp"]; string callBack = AppDomain.CurrentDomain.BaseDirectory + upgradeAppPath; if (File.Exists(callBack)) { if (Properties.Settings.Default.IpAddress == System.Configuration.ConfigurationManager.AppSettings["IPAddress"]) { System.Diagnostics.Process process = System.Diagnostics.Process.Start(callBack); } else { System.Diagnostics.Process process = System.Diagnostics.Process.Start(callBack, "s"); } } else { MessageBox.Show("目标程序不存在" + callBack); } System.Environment.Exit(0); } }
升级程序的配置文件:
ExeAppName 是升级程序升级完成后,关闭自身后,重新启动主程序所配置的主程序名。
部分代码:
private void StartUpdate() { //设置获取文件信息类 优先级 普高 UpgradeConfig upgradeConifg = connection.SendReceiveObject<string, UpgradeConfig>("GetUpMsg", "ResUpMsg", 5000, "Test", customOptions, customOptions); if (upgradeConifg.AppVersion > 0) { listBox1.DataSource = upgradeConifg.FileList; textBox1.Text = upgradeConifg.AppVersion.ToString(); //需下载的文件的数量 upFilesCount = upgradeConifg.FileList.Count; //发送信息请求下载升级文件 string filePath = AppDomain.CurrentDomain.BaseDirectory; //把本地文件的存储路径发送到服务器端 (之后再由服务器端的sendInfo携带回来) connection.SendObject<string>("GetUpFile", filePath, customOptions); } else { MessageBox.Show("不需要升级"); } }
从服务器获取本次升级的文件列表后,依次从服务器下载文件到本地。
升级完成后,关闭本程序,启动主程序,完成升级。
以上是关于艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)的主要内容,如果未能解决你的问题,请参考以下文章