局域网内的软件更新方法、装置及电子设备与流程

文档序号:22469722发布日期:2020-10-09 21:58阅读:418来源:国知局
局域网内的软件更新方法、装置及电子设备与流程

本申请涉及数据处理技术,具体涉及局域网内的软件更新方法、装置及电子设备。



背景技术:

软件更新一般采用子模块访问公网的某个更新服务器,这个服务器有可能是软件公司自己维护,也可能是其他第三方公司提供,比如360,腾讯的服务器等,当有新版本发布的时候,在服务器中放置一个更新包,程序的更新模块检测服务器是否有新版本,有新版本的话,从服务器下载更新包,下载完成后结束软件的运行,开始安装更新包,更新完成。采用局域网更新的大多是有一台可以上网的电脑担任中继服务器,中继服务器从上述方案中提到的公网服务器中下载更新包,因为其他电脑无法上公网,所以从中继服务器中下载更新。

第一种方案的缺点网络有问题或者服务器出现问题,未更新的电脑就无法正常更新,而且所有的电脑都需要从同一服务器更新,更新速度慢。第二种方案缺点是如果上网电脑出现问题,其他电脑就无法正常更新。

因此,现有的软件更新方式均存在某些场景下使用不可靠的问题。



技术实现要素:

本申请的目的在于,针对上述现有技术中的不足,提供局域网内的软件更新方法、装置及电子设备,以提高局域网内软件更新过程的可靠性。

第一方面,本申请实施例公开了一种局域网内的软件更新方法,应用于局域网内的第一电子设备中,所述局域网还包含至少一个第二电子设备,所述方法包括:

当待更新软件需要更新时,获取所述待更新软件的版本信息,得到第一版本信息;

向所述第二电子设备发送所述第一版本信息,以使所述第二电子设备判断是否存储有版本相对于所述第一版本信息较新的待更新软件的更新包;

若存在所述更新包,则接收与所述更新包相应的ip地址;

基于所述ip地址对所述更新包进行下载,并利用所述更新包对所述待更新软件进行更新。

可选的,所述获取所述待更新软件的版本信息,包括:

利用软件更新模块获取所述待更新软件的版本信息;

所述向所述第二电子设备发送所述第一版本信息,包括:

所述软件更新模块通过进程间通信向设备发现服务程序发送版本信息;

所述设备发现服务程序通过udp报文,向所述第二电子设备发送所述第一版本信息。

可选的,所述ip地址为两个或两个以上,所述基于所述ip地址对所述更新包进行下载,包括:

将所接收到的所述ip地址存储到一队列中;

基于所述队列中的ip地址对所述更新包进行下载。

可选的,所述ip地址至少包括第一ip地址及第二ip地址,所述基于所述队列中的ip地址对所述更新包进行下载,包括:

从所述队列中获取第一ip地址;

判断所述第一ip地址是否处于下载状态或处于闲置状态;

若所述第一ip地址处于下载状态,则获取处于闲置状态的第二ip地址对所述更新包进行下载。

可选的,所述ip地址与所述第二电子设备中更新包的第二版本信息关联;

所述将所接收到的所述ip地址存储到一队列中,包括:

通过与所述ip地址关联的第二版本信息判断所述更新包是否为所述待更新软件的最新版本;

若是,则将最新版本的所述更新包的ip地址存储到一队列中。

可选的,在所述基于所述队列中的ip地址对所述更新包进行下载之后,还包括:

将所述更新包存储至nginx服务器中。

可选的,在所述将所述更新包存储至nginx服务器中之后,还包括:

接收所述第二电子设备发送的第二版本信息,判断存储在所述nginx服务器的更新包的版本信息是否相对于第二电子设备发送的第二版本信息较新;

若是,则向所述第二所述电子设备发送所述更新包在nginx服务器中的ip地址。

可选的,在所述向所述第二电子设备发送所述第一版本信息,以使所述第二电子设备判断是否存储有版本相对于所述第一版本信息较新的待更新软件的更新包之后,还包括:

若不存在所述更新包,则从公网服务器获取相应版本的更新包;

将所述更新包存储至nginx服务器中。

第二方面,本申请还提供了一种局域网内的软件更新装置,应用于局域网内的第一电子设备中,所述局域网还包含至少一个第二电子设备,所述装置包括:

信息获取模块,用于当待更新软件需要更新时,获取所述待更新软件的版本信息,得到第一版本信息;

信息发送模块,用于向所述第二电子设备发送所述第一版本信息,以使所述第二电子设备判断是否存储有版本相对于所述第一版本信息较新的待更新软件的更新包;

地址接收模块,用于若存在所述更新包,则接收与所述更新包相应的ip地址;以及

更新模块,用于基于所述ip地址对所述更新包进行下载,并利用所述更新包对所述待更新软件进行更新。

第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:

处理器及与所述处理器电连接的存储器;

所述存储器存储有所述处理器可执行的机器可读指令,所述处理器执行所述机器可读指令,以执行如上任一项所述的局域网内的软件更新方法。

本申请实施例中,通过直接在局域网中搜索可用于更新的待更新软件的更新包,并利用所反馈的与更新包相应的ip地址执行局域网内部的更新包下载、更新任务;上述软件更新方式可以减轻公网服务器的工作压力,并且从局域网内其他设备上获得更新包,可加快软件的更新速度;本申请可使电子设备在不连接公网的情况下完成软件更新工作,提高了局域网内软件更新过程的可靠性。

附图说明

构成本申请的一部分附图用来提供对本申请的进一步理解。

在附图中:

图1为本申请实施例提供的局域网内的软件更新方法的应用场景图。

图2为本申请实施例提供的局域网内的软件更新方法的实现流程图。

图3为本申请实施例提供的发送版本信息的实现流程图。

图4为本申请实施例提供的发送版本信息的应用场景图。

图5为本申请实施例提供的基于ip地址对更新包进行下载的实现流程图。

图6为本申请实施例提供的局域网内的软件更新装置的结构示意图。

图7为本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

软件更新一般采用子模块访问公网的某个更新服务器下载更新包来进行更新,但在更新过程中需要设备持续与公网连接,并且要确保服务器不会发生任何问题才能完成软件更新,且多个客户群体同时从同一更新服务器进行软件更新时,更新速度慢。后期引入了局域网内的软件更新方法,该更新方法以一台可连接公网的设备担任中继服务器,本台设备从公网上下载更新包后,为局域网内的其他设备提供更新服务,该方法必须要有一台设备连接公网,作为中继服务器,且其他局域网内的设备进行应用程序更新时只能向作为中继服务器的设备发送请求来完成应用程序更新,更新方式单一,且对公网有绝对的依赖性。为此,我们提出了一种局域网内的软件更新方法、装置及电子设备。

请参阅图1,图中示出了本申请实施例提供的局域网内的软件更新方法的应用场景。

在该应用场景中,包括一个由多个电子设备组成的局域网(图中仅标出第一电子设备至第四电子设备共四个电子设备),该电子设备可以通过公网服务器与外网连接,以获取外网中的数据资料。

其中,该电子设备可以是个人计算机、智能手机、平板电脑或者是其他常用的可安装软件的设备,例如智能电视等,本申请对电子设备的具体形态不作限定。

具体的,各个电子设备之间可以通过数据线(如网线)进行通讯连接,或者连接至公网服务器,以通过公网服务器进行组网。除了公网服务器,还可以采用具有服务器功能的其他设备组建局域网,例如自带服务器功能的路由器等,在此不穷举。

现有方式中,若电子设备需要对待更新软件进行更新时,可以单独通过公网服务器,从外部服务器下载该待更新软件的更新包,并将更新包进行安装。但是,更新速度需要基于公网服务器的传输性能及可靠度,容易因网络堵塞或硬件问题而导致软件更新缓慢的情况。

因此,下面提供一种局域网内的软件更新方法,通过直接在局域网中搜索可用于更新的待更新软件的更新包,并利用所反馈的与更新包相应的ip地址执行局域网内部的更新包下载、更新任务;上述软件更新方式可以减轻公网服务器的工作压力,并且从局域网内其他设备上获得更新包,可加快软件的更新速度,提高了局域网内软件更新过程的可靠性。

请参阅图2,图中示出了本申请实施例提供的局域网内的软件更新方法的实现流程。

其中,该局域网内的软件更新方法应用于局域网内的第一电子设备中,该电子设备及局域网可以为如图1所示应用场景中的电子设备及局域网。

如图2所示,该局域网内的软件更新方法,包括:

101、当待更新软件需要更新时,获取待更新软件的版本信息,得到第一版本信息。

其中,该待更新软件可以通过调取自身的软件更新模块,以启动软件更新功能。

该软件更新模块可以通过用户的操作进行触发,或者是软件获取到的软件更新指令触发。

在一实施例中,该更新软件的版本信息可以从配置文件中进行获取,该配置文件可以是保存在注册表中的文件信息,也可以是其他特定存储版本信息的文件。

该版本信息可以包括待更新软件的版本号及其软件名称,以便于其他电子设备对该版本信息进行识别。

102、向第二电子设备发送第一版本信息,以使第二电子设备判断是否存储有版本相对于第一版本信息较新的待更新软件的更新包。

其中,为了识别其他电子设备所发送的信息,该第一电子设备或第二电子设备中均可以安装有相应的设备发现服务程序模块,从而通过电子设备的设备发现服务程序模块之间的传输协议,实现各电子设备之间的信息发送或接收。

在一实施例中,若第一电子设备的软件需要更新时,可以通过第一电子设备的设备发现服务程序模块,向局域网中的第二电子设备发送版本信息,该设备发现服务程序模块可以采用如udp协议将版本信息进行编码后进行发送,以确保第二电子设备的设备发现服务程序模块通过相同的通信协议识别出该第一版本信息。

当第二电子设备获取到该第一版本信息后,可以查询设备内是否存储有该待更新软件对应的更新包,并判断该更新包的版本是否较该第一版本信息中的版本号新,若是则确定当前的第二电子设备存储有版本相对于第一版本信息较新的待更新软件的更新包。

例如,结合图1,若第一电子设备21中的待更新软件的版本信息中的版本号为v1.0,而如果在第三电子设备23中存储的该待更新软件的更新包为版本号v2.0的更新包,则通过常规对比判断可知该第三电子设备23存在版本较新的待更新软件的更新包。

当然,所需求的具体版本号信息可以基于待更新软件的软件更新模块确定,具体的获取方式可以根据实际情况而定。

103、若存在更新包,则接收与更新包相应的ip地址。

其中,当电子设备下载某一软件的更新包后,可以将该更新包可存储于某一特定的位置,如nginx服务器指定的目录中。

在一实施例中,当确定当前的电子设备(相当于上述的第二电子设备)的nginx服务器存储有版本较新的待更新软件的更新包,则可以将该nginx服务器相应的目录的ip地址发送给待更新软件所在的电子设备(相当于上述的第一电子设备),以便于待更新软件所在的电子设备通过ip地址下载该更新包。

可以理解的,除了采用nginx服务器,还可以采用其他存储方式存储更新包,以便于将所存储文件的目录的ip地址发送给需要更新的电子设备。

在一实施例中,存在更新包的电子设备可以有多个,因此所接收到的ip地址有可能也为多个。

在另一实施例中,若局域网中的电子设备均不存在相应的更新包,则从公网服务器获取相应版本的更新包。此时可以通过公网服务器从第三方服务器获得更新包,以进行软件更新。

并且,当电子设备从公网服务器获得更新包后,可以将更新包存储至nginx服务器中,从而作为局域网的下载节点,方便为其他电子设备提供更新包的下载服务,而无需其他电子设备再次利用公网服务器获取更新包,从而提高软件更新过程的可靠性。

104、基于ip地址对更新包进行下载,并利用所述更新包对待更新软件进行更新。

其中,第一电子设备利用所获得的更新包所在文件目录的ip地址,可以通过该局域网从相应的电子设备获取并下载该更新包,从而利用该版本号较新的更新包对待更新软件进行更新、安装。

在一实施例中,若所接收到的ip地址为多个,可以将其存储到一队列中,从而基于该队列中的ip地址对更新包进行下载。具体的,可以通过对ip地址进行筛选,获得唯一的ip地址,或者随机选取的方式确定其中一个需要连接的ip地址。或者,可以同时通过多线程下载工具同时对多个ip地址进行连接并下载该更新包。对于如何利用ip地址进行下载,可以根据实际情况对现有的下载方式进行选用。

当第一电子设备下载完该更新包时,可以基于该更新包对待更新软件进行安装、更新。

在一实施例中,当更新完毕后,第一电子设备可以将所下载的更新包存储至nginx服务器中,从而将当前的电子设备作为更新包的下载节点,以提高第二电子设备的软件更新速度与可靠度。

具体的,可以采用以下方式提供更新包:接收第二电子设备发送的第二版本信息,判断存储在nginx服务器的更新包的版本信息是否相对于第二电子设备发送的第二版本信息较新;若是,则向第二所述电子设备发送更新包在nginx服务器中的ip地址。

另外,若存储有更新包的电子设备越多,则可以同时下载更新包的电子设备则越多,可以提高局域网中的软件更新速度。例如,若存在更新包的电子设备为一个,则只可使另一电子设备下载到该更新包;若此时另一电子设备更新完毕,并将更新包进行保存,则可以同时使另两个电子设备同时下载该更新包,以此类推,当存储有更新包的电子设备越多,则可同时更新的电子设备的数量越多。

可知相对于传统的只通过公网服务器下载更新包的方式,其更新速度更快,也不用依靠公网的传输速率及在线情况,更新过程更加可靠。

由上可知,本申请实施例中,通过直接在局域网中搜索可用于更新的待更新软件的更新包,并利用所反馈的与更新包相应的ip地址执行局域网内部的更新包下载、更新任务;上述软件更新方式可以减轻公网服务器的工作压力,并且从局域网内其他设备上获得更新包,可加快软件的更新速度;本申请可使电子设备在不连接公网的情况下完成软件更新工作,提高了局域网内软件更新过程的可靠性。

请参阅图3-4,图中示出了本申请实施例提供的发送版本信息的实现流程及应用场景。

如图3-4所示,电子设备中可以配置有配置文件、软件更新模块及设备发现服务程序。

其中,该配置文件可以是保存在注册表中的文件信息,也可以是其他特定存储版本信息的文件。

该软件更新模块,可以安装在待更新软件中,当需要进行软件更新时则进行调取。

该设备发现服务程序,可以是基于某一通信协议的发现服务方式实现设备发现服务。

该获取所述待更新软件的版本信息,包括:

201、利用软件更新模块获取待更新软件的版本信息。

该软件更新模块可以通过用户的操作进行触发,或者是软件获取到的软件更新指令触发。

在一实施例中,该更新软件的版本信息可以从配置文件中进行获取,该配置文件可以是保存在注册表中的文件信息,也可以是其他特定存储版本信息的文件。

该版本信息可以包括待更新软件的版本号及其软件名称,以便于第二电子设备对该版本信息进行识别。

该向第二电子设备发送第一版本信息,包括:

202、软件更新模块通过进程间通信向设备发现服务程序发送版本信息。

其中,进程间通信可以采用现有的通信方式,本申请对具体如何实现进程间通信不做限定。

203、设备发现服务程序通过udp报文,向第二电子设备发送第一版本信息。

具体的,该设备发现服务程序可以启动一个线程,并将版本信息中的版本号及软件名称放到udp报文中,向局域网进行广播,以向第二电子设备发送该版本信息。

通过上述方式,可以实现将版本信息在局域网内进行快速传播,从而快速定位相应的更新包的存储位置,以便于后续的获取。并且,因局域网具有稳定性强、设备之间传输速度快的特点,且无需利用外部网络进行更新包的获取,从而可以提高软件更新过程的速度及可靠度。

请参阅图5,图中示出了本申请实施例提供的基于ip地址对更新包进行下载的实现流程。

如图5所示,该基于所述队列中的ip地址对所述更新包进行下载,包括:

301、将所接收到的ip地址存储到一队列中。

该队列可以以列表的形式存放各个ip地址,以便于设备对ip地址进行读取。

302、从队列中获取第一ip地址。

其中,获取方式可以是随机选取,也可以是基于多种条件进行,例如目标设备是否处于下载状态或者是其他工作状态,又或者是基于网络状态的优劣进行选取。

在一实施例中,可以随机选取一个ip地址即可。

303、判断第一ip地址是否处于下载状态或处于闲置状态;若第一ip地址处于下载状态,则获取处于闲置状态的第二ip地址对所述更新包进行下载;若否,则基于ip地址对更新包进行下载。

若ip地址处于下载状态,可能会占用网络带宽,影响传输速率。因此,可以通过选取未处于下载状态的ip地址对更新包进行下载,以确保传输效率。

该ip地址可以通过设置标志位来提示是否正在处于下载状态或者闲置状态。

例如,若该ip地址正处于下载状态,则将相关的标志位置1,因此,若设备检测到其相关的标志位为1时,则可以确定该ip地址处于下载状态。若该ip地址正处于闲置状态,则将相关的标志位置0,因此,若设备检测到其相关的标志位为0时,则可以确定该ip地址处于下载状态。

当然,判断第一ip地址是否处于下载状态或处于闲置状态,可以实际根据不同因素来进行判断,例如在第一ip地址打开过程中插入判断指令等,本申请对此不作限定。

304、若第一ip地址处于下载状态,则获取处于闲置状态的第二ip地址对所述更新包进行下载。

此时,对于第二ip地址同样可以参照步骤303中对ip地址是否处于下载状态或处于闲置状态的判断过程,并获得处于闲置状态的第二ip地址。

由上可知,通过选取闲置状态的ip地址对更新包进行下载,可以确保其传输效率,避免出现传输出错或其他传输问题,进一步提高软件更新过程的可靠度。

在一实施例中,当局域网中存在多个版本的更新包时,容易因更新版本不同而出现重复更新的现象。为了解决上述问题,可以将该ip地址与第二电子设备中更新包的第二版本信息关联。

其中,将所接收到的ip地址存储到一队列中,可以包括:通过与ip地址关联的第二版本信息判断更新包是否为待更新软件的最新版本;若是,则将最新版本的更新包的ip地址存储到一队列中。

此时可以在ip地址中携带有相应的更新包的版本信息,从而使得第一电子设备可以从该ip地址中所携带的第二电子设备中更新包的第二版本信息判断其是否为最新版本,再将最新版本的更新包相应的ip地址存储到队列中。

例如,当局域网中待更新软件的版本号为v1.0,且存在两种更新包的版本号分别是v2.0、v3.0版本时,第一电子设备可以通过ip地址中所携带的第二版本信息判断v3.0版本的更新包为最新版本的更新包,进而将v3.0版本的更新包的ip地址存储进队列中以供下载。

通过选择版本号最新的更新包相应的ip地址作为队列的存储对象,可以有效避免因版本不统一而出现的多次更新的问题,进一步提高软件更新过程的可靠性。

请参阅图6,图中示出了本申请实施例提供的局域网内的软件更新装置的功能模块。

如图6所示,该局域网包含多个相互通讯的电子设备,该局域网内的软件更新装置4包括信息获取模块41、信息发送模块42、地址接收模块43以及更新模块44。

信息获取模块41,用于当待更新软件需要更新时,获取待更新软件的版本信息,得到第一版本信息。

其中,该待更新软件可以通过调取自身的软件更新模块,以启动软件更新功能。

该软件更新模块可以通过用户的操作进行触发,或者是软件获取到的软件更新指令触发。

在一实施例中,该更新软件的版本信息可以从配置文件中进行获取,该配置文件可以是保存在注册表中的文件信息,也可以是其他特定存储版本信息的文件。

该版本信息可以包括待更新软件的版本号及其软件名称,以便于其他电子设备对该版本信息进行识别。

信息发送模块42,用于向第二电子设备发送所述第一版本信息,以使第二电子设备判断是否存储有版本相对于第一版本信息较新的待更新软件的更新包。

其中,为了识别其他电子设备所发送的信息,该第一电子设备或第二电子设备中均可以安装有相应的设备发现服务程序模块,从而通过电子设备的设备发现服务程序模块之间的传输协议,实现各电子设备之间的信息发送或接收。

在一实施例中,若第一电子设备的软件需要更新时,可以通过第一电子设备的设备发现服务程序模块,向局域网中的第二电子设备发送版本信息,该设备发现服务程序模块可以采用如udp协议将版本信息进行编码后进行发送,以确保第二电子设备的设备发现服务程序模块通过相同的通信协议识别出该第一版本信息。

当第二电子设备获取到该第一版本信息后,可以查询设备内是否存储有该待更新软件对应的更新包,并判断该更新包的版本是否较该第一版本信息中的版本号新,若是则确定当前的第二电子设备存储有版本相对于第一版本信息较新的待更新软件的更新包。

例如,结合图1,若第一电子设备21中的待更新软件的版本信息中的版本号为v1.0,而如果在第三电子设备23中存储的该待更新软件的更新包为版本号v2.0的更新包,则通过常规对比判断可知该第三电子设备23存在版本较新的待更新软件的更新包。

当然,所需求的具体版本号信息可以基于待更新软件的软件更新模块确定,具体的获取方式可以根据实际情况而定。

地址接收模块43,用于若存在更新包,则接收与更新包相应的ip地址。

其中,当电子设备下载某一软件的更新包后,可以将该更新包可存储于某一特定的位置,如nginx服务器指定的目录中。

在一实施例中,当确定当前的电子设备(相当于上述的第二电子设备)的nginx服务器存储有版本较新的待更新软件的更新包,则可以将该nginx服务器相应的目录的ip地址发送给待更新软件所在的电子设备(相当于上述的第一电子设备),以便于待更新软件所在的电子设备通过ip地址下载该更新包。

可以理解的,除了采用nginx服务器,还可以采用其他存储方式存储更新包,以便于将所存储文件的目录的ip地址发送给需要更新的电子设备。

在一实施例中,存在更新包的电子设备可以有多个,因此所接收到的ip地址有可能也为多个。

在另一实施例中,若局域网中的电子设备均不存在相应的更新包,则从公网服务器获取相应版本的更新包。此时可以通过公网服务器从第三方服务器获得更新包,以进行软件更新。

并且,当电子设备从公网服务器获得更新包后,可以将更新包存储至nginx服务器中,从而作为局域网的下载节点,方便为其他电子设备提供更新包的下载服务,而无需其他电子设备再次利用公网服务器获取更新包,从而提高软件更新过程的可靠性。

更新模块44,用于基于ip地址对更新包进行下载,并利用更新包对待更新软件进行更新。

其中,第一电子设备利用所获得的更新包所在文件目录的ip地址,可以通过该局域网从相应的电子设备获取并下载该更新包,从而利用该版本号较新的更新包对待更新软件进行更新、安装。

在一实施例中,若所接收到的ip地址为多个,可以将其存储到一队列中,从而基于该队列中的ip地址对更新包进行下载。具体的,可以通过对ip地址进行筛选,获得唯一的ip地址,或者随机选取的方式确定其中一个需要连接的ip地址。或者,可以同时通过多线程下载工具同时对多个ip地址进行连接并下载该更新包。对于如何利用ip地址进行下载,可以根据实际情况对现有的下载方式进行选用。

当第一电子设备下载完该更新包时,可以基于该更新包对待更新软件进行安装、更新。

在一实施例中,当更新完毕后,第一电子设备可以将所下载的更新包存储至nginx服务器中,从而将当前的电子设备作为更新包的下载节点,以提高第二电子设备的软件更新速度与可靠度。

具体的,可以采用以下方式提供更新包:接收第二电子设备发送的第二版本信息,判断存储在nginx服务器的更新包的版本信息是否相对于第二电子设备发送的第二版本信息较新;若是,则向第二所述电子设备发送更新包在nginx服务器中的ip地址。

另外,若存储有更新包的电子设备越多,则可以同时下载更新包的电子设备则越多,可以提高局域网中的软件更新速度。例如,若存在更新包的电子设备为一个,则只可使另一电子设备下载到该更新包;若此时另一电子设备更新完毕,并将更新包进行保存,则可以同时使另两个电子设备同时下载该更新包,以此类推,当存储有更新包的电子设备越多,则可同时更新的电子设备的数量越多。

可知相对于传统的只通过公网服务器下载更新包的方式,其更新速度更快,也不用依靠公网的传输速率及在线情况,更新过程更加可靠。

由上可知,本申请实施例中,通过直接在局域网中搜索可用于更新的待更新软件的更新包,并利用所反馈的与更新包相应的ip地址执行局域网内部的更新包下载、更新任务;上述软件更新方式可以减轻公网服务器的工作压力,并且从局域网内其他设备上获得更新包,可加快软件的更新速度;本申请可使电子设备在不连接公网的情况下完成软件更新工作,提高了局域网内软件更新过程的可靠性。

在一实施例中,该信息获取模块41,具体用于利用软件更新模块44获取所述待更新软件的版本信息。该信息发送模块42,具体用于软件更新模块44通过进程间通信向设备发现服务程序发送版本信息;设备发现服务程序通过udp报文,向第二电子设备发送第一版本信息。

在一实施例中,该更新模块44,具体用于将所接收到的所述ip地址存储到一队列中,基于所述队列中的ip地址对所述更新包进行下载。

在一实施例中,该更新模块44,具体用于从所述队列中获取第一ip地址;判断所述第一ip地址是否处于下载状态或处于闲置状态;若所述第一ip地址处于下载状态,则获取处于闲置状态的第二ip地址对所述更新包进行下载。

在一实施例中,该更新模块44,具体用于通过与所述ip地址关联的第二版本信息判断所述更新包是否为所述待更新软件的最新版本;若是,则将最新版本的所述更新包的ip地址存储到一队列中。

在一实施例中,该更新模块44,具体用于将所述更新包存储至nginx服务器中。

在一实施例中,该更新模块44,具体用于接收所述第二电子设备发送的第二版本信息,判断存储在所述nginx服务器的更新包的版本信息是否相对于第二电子设备发送的第二版本信息较新;若是,则向所述第二所述电子设备发送所述更新包在nginx服务器中的ip地址。

在一实施例中,所述装置还包括更新包获取模块,用于若不存在所述更新包,则从公网服务器获取相应版本的更新包;将所述更新包存储至nginx服务器中。

请参阅图7,图中示出了本申请实施例提供的电子设备的结构。

如图7所示,该电子设备5可以用于执行本申请实施例提供的局域网内的软件更新方法。

其中,该电子设备5可以包括:处理器51及存储器52。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的电子设备5的结构并不构成对本申请的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器52可以用于存储处理器51的执行指令,存储器52可以由任何类型的易失性或非易失性存储电子设备5或者它们的组合实现,如静态随机存取存储器52(sram),电可擦除可编程只读存储器52(eeprom),可擦除可编程只读存储器52(eprom),可编程只读存储器52(prom),只读存储器52(rom),磁存储器52,快闪存储器52,磁盘或光盘。当存储器52中的执行指令由处理器51执行时,使得电子设备5能够执行上述方法实施例中的部分或全部步骤。

处理器51为电子设备5的控制中心,利用各种接口和线路连接整个电子设备5的各个部分,通过运行或执行存储在存储器52内的软件程序和/或模块,以及调用存储在存储器52内的数据,以执行电子设备5的各种功能和/或处理数据。所述处理器51可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器51可以仅包括中央处理器51(centralprocessingunit,简称cpu)。在本申请实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

所述存储器52存储有所述处理器51可执行的机器可读指令,所述处理器51执行所述机器可读指令,以执行如下方法:

当待更新软件需要更新时,获取所述待更新软件的版本信息,得到第一版本信息;向所述第二电子设备发送所述第一版本信息,以使所述第二电子设备判断是否存储有版本相对于所述第一版本信息较新的待更新软件的更新包;若存在所述更新包,则接收与所述更新包相应的ip地址;基于所述ip地址对所述更新包进行下载,并利用所述更新包对所述待更新软件进行更新。

在一实施例中,该处理器51还用于执行:

利用软件更新模块获取所述待更新软件的版本信息;软件更新模块44通过进程间通信向设备发现服务程序发送版本信息;设备发现服务程序通过udp报文,向第二电子设备发送第一版本信息。

在一实施例中,该处理器51还用于执行:

将所接收到的所述ip地址存储到一队列中;基于所述队列中的ip地址对所述更新包进行下载。

在一实施例中,该处理器51还用于执行:

从所述队列中获取第一ip地址;判断所述第一ip地址是否处于下载状态或处于闲置状态;若所述第一ip地址处于下载状态,则获取处于闲置状态的第二ip地址对所述更新包进行下载。

在一实施例中,该处理器51还用于执行:

通过与所述ip地址关联的第二版本信息判断所述更新包是否为所述待更新软件的最新版本;若是,则将最新版本的所述更新包的ip地址存储到一队列中。

在一实施例中,该处理器51还用于执行:

将所述更新包存储至nginx服务器中。

在一实施例中,该处理器51还用于执行:

接收所述第二电子设备发送的第二版本信息,判断存储在所述nginx服务器的更新包的版本信息是否相对于第二电子设备发送的第二版本信息较新;若是,则向所述第二所述电子设备发送所述更新包在nginx服务器中的ip地址。

在一实施例中,该处理器51还用于执行:

若不存在所述更新包,则从公网服务器获取相应版本的更新包;将所述更新包存储至nginx服务器中。

由上可知,该电子设备通过直接在局域网中搜索可用于更新的待更新软件的更新包,并利用所反馈的与更新包相应的ip地址执行局域网内部的更新包下载、更新任务;上述软件更新方式可以减轻公网服务器的工作压力,并且从局域网内其他设备上获得更新包,可加快软件的更新速度;本申请可使电子设备在不连接公网的情况下完成软件更新工作,提高了局域网内软件更新过程的可靠性。

本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

该计算机可读存储介质,其可通过计算机读取存储介质上存储的计算机程序;

计算机程序被处理器运行时执行如上所述的任意一个实施例的局域网内的软件更新方法,例如:

当待更新软件需要更新时,获取所述待更新软件的版本信息,得到第一版本信息;向所述第二电子设备发送所述第一版本信息,以使所述第二电子设备判断是否存储有版本相对于所述第一版本信息较新的待更新软件的更新包;若存在所述更新包,则接收与所述更新包相应的ip地址;基于所述ip地址对所述更新包进行下载,并利用所述更新包对所述待更新软件进行更新。

上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1