史上最全版本自动更新程序及3种实现策略-分析文档(UML图)
来源:互联网 发布:华为网盘mac版 编辑:程序博客网 时间:2024/05/16 17:59
http://blog.csdn.net/tomliks/archive/2009/08/25/4481687.aspx
版本自动更新程序及3种实现策略
C/S程序是基于客户端和服务器的,在客户机编译新版本后将文件发布在更新服务器上。然后建立一个XML文件,该文件列举最新版本号和所有文件及文件最后修改日期。如文件较多可以通过工具自动建立XML文件。当某客户机运行程序后会自动下载这个XML文件,通过与本地机器上的版本号匹配,如本机上的版本号比服务器上的要旧,通知客户机运行更新程序。如用户更新了版本,将最新版本号写入配置文件,这样方便下一次匹配。
通过分析可使用下面3种方案下载
1.局域网共享文件夹下载
2.Tcp/ip远程下载
3.通过Web方式下载。
方式1适合内部网络,功能简单,编程只需调用File.Copy()就能实现。如建立VPN网络,也可视为远程下载。我们只需在服务器上共享一个文件夹并设定访问权限,然后将最新版本文件存放在这个目录。升级程序直接从这个目录Copy文件即可。
方式2是通过基于tcp/ip 的Socket组件编程来实现,使用这个机制必须有服务器监听程序。其简单设计思路是在服务器端启动TcpListener监听客户端的Socket连接,当Client发送连接请求,TcpListener捕获当前请求的Socket,并获取收到的数据(字符串,称为命令)。然后由命令处理程序分析该字符串,如果字符串头部包含GET_FILE标识则为下载文件请求。
例:客户机向服务器程序发送请求命令:"GET_FILE|D:/PUBLISH/TEST.DLL"。首先TcpListener捕获当前请求的Socket.并接收到字符数据"GET_FILE|D:/PUBLISH/TEST.DLL",通过分析发现"GET_FILE"标识符,表示下载文件请求.然后通过socket.SendFile(file="D:/PUBLISH/TEST.DLL")将文件传送给当前Socket。客户端由NetworkStream.Read()方法接收来自服务器发送的文件。
方式3是通过.NetFramework提供的WebClient组件下载文件。只需指定DownloadData()方法中参数address(url)。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tomliks/archive/2009/08/25/4481687.aspx
建议看 http://www.itqun.net/content-detail/118817.html 此处的转载有附图
版本自动更新程序及3种实现策略(一)文档及UML图
版本自动更新程序及3种实现策略(二)下载器实现
版本自动更新程序及3种实现策略程序下载(附源码)
- 史上最全版本自动更新程序及3种实现策略-分析文档(UML图)
- 史上最全版本自动更新程序及3种实现策略-分析文档(UML图)
- 版本自动更新程序及3种实现策略(一)文档及UML
- (转)版本自动更新程序及3种实现策略
- 版本自动更新程序及3种实现策略
- 为程序添加版本自动更新功能(转+详细分析)
- 为程序添加版本自动更新功能(转+详细分析)
- 为程序添加版本自动更新功能(转+详细分析)
- Flex AIR程序自动更新策略
- C# 实现版本自动更新
- WPF版本的自动更新程序
- Winform/WinCE程序版本自动更新
- Android实现程序自动更新
- Android实现程序自动更新
- 实现android应用版本自动更新
- 实现Splash页面版本自动更新
- Android实现App版本自动更新
- Android实现App版本自动更新
- pku 3345 && pku 3107
- IBM转型的8个管理原则
- 大牛的分页存储过程
- Native Application Uncover
- C语言中用qsort()快速排序
- 史上最全版本自动更新程序及3种实现策略-分析文档(UML图)
- OpenGL入门学习(一)
- ssh2分页
- OpenGL入门学习(二)
- 一个旋转立方体和以立方体为目标的旋转相机
- OpenGL入门学习(三)
- 存储过程使用游标
- OpenGL入门学习(四)
- 最近很不务正业