标签: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