基于IP的软件升级问题,自动检测IP地址,只升级指定的IP上面的软件


用C#设计了一个软件 里面有很多模块,投入使用,对应的模块给指定的部门使用,如果某个模块更新了,希望只有使用这个模块的人能收到软件要升级的信息,应该怎么做,完全没有头绪,谢谢!!

c# 单点登录

mayo14 11 years ago

“里面有很多模块,投入使用,对应的模块给指定的部门使用,如果某个模块更新了,希望只有使用这个模块的人能收到软件要升级的信息”

那么在整个系统中,必定是有一个管理员使用的管理软件的。
而且所有部门所使用的模块和你这个管理软件是处于同一个局域网内的。
一般来说,都是DHCP方式分配IP的。
既然是HTTP方式,那么最重要的处理就在于每个模块端。

当有新版本的时候,通过管理端给各模块升级,如果没有一个keep alive的私有协议机制的话,那么就需要首先发送一个查询该模块当前是否在线,如果在,那么就将HTTP File Server中所需要使用的升级包的链接发给该模块。

所以在模块端,模块端就需要在收到链接以后,自己去下载,自动安装,安装完成之后,将成功信息返回给 管理端 (不是文件服务器)。这一部分才是最主要的。

如果需要对版本号进行判断的话,那么在查询是否在线的时候,就需要加上这个询问,在模块回复ACK的时候就会带上当前的版本号。可以show出来,然后模块在下完升级包/image 的时候,首先是会自己解析安装的,如果判断版本号一致,那么就不需要升级,就返回一个对应的状态。这些状态:成功、版本已经是最新、失败、文件类型不对、给的链接无效等等状态有双方进行协商。譬如,返回1是成功,返回2是……返回3是……

yalest answered 11 years ago

Your Answer