版本自动更新程序及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
首先 TcpListener 捕获当前请求的 Socket
并接收到字符数据"GET_FILE|D:\PUBLISH\TEST
DLL",通过分析发现"GET_FILE"标识符,表示下载文件请求
然后通过socket
SendFile(file="D:\PUBLISH\TEST