首页 > 代码库 > 艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)(二)

艺萌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("不需要升级");
            }
        }
View Code

从服务器获取本次升级的文件列表后,依次从服务器下载文件到本地。

 

升级完成后,关闭本程序,启动主程序,完成升级。

艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)(二)