码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-12-02 01:24:47      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:box   bar   class   上传下载   9.png   技术分享   tin   back   发送   

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

该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定。

项目地址:https://item.taobao.com/item.htm?spm=686.1000925.0.0.AjdBGP&id=537538462790

 咨询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("不需要升级");
}
}


技术分享
   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文件传输)(二)

标签:box   bar   class   上传下载   9.png   技术分享   tin   back   发送   

原文地址:http://www.cnblogs.com/csdev/p/6123768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!