掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法、装置、存储介质及电子装置

文献发布时间:2024-04-18 20:00:50


数据传输方法、装置、存储介质及电子装置

技术领域

本申请实施例涉及数据传输领域,具体而言,涉及一种数据传输方法、装置、存储介质及电子装置。

背景技术

随着现代物联网技术的不断发展,在线平台会在全国各地部署终端设备系统来收集数据,从而提供更好的云服务。不过随着业务增长,需要对终端设备系统进行定期升级,而升级关键在于向终端设备系统发送升级数据包。

常规方案是终端设备系统使用socket连接向平台的服务端发送下载文件请求,服务端响应此请求直接推送读取到的文件,不过存在以下问题:

1,虽然服务器会以片段方式发送文件,但是片段大小并存在不一致,如片段较小会因需多次开关文件流而影响文件写入效率,如片段较大,会因传输时间过长导致传输阻塞;

2,在大量终端设备系统同时请求升级同一版本时,会将大量重复的文件片段读取到服务端的内存,如超过内存可承载范围,就会出现内存溢出继而引发服务端的系统崩溃。

综上所述,现有技术中,存在如何提高向终端设备传输数据包的传输效率的技术问题。

针对现有技术中,如何提高向终端设备传输数据包的传输效率的技术问题,并未得到有效解决。

发明内容

本申请实施例提供了一种数据传输方法、装置、存储介质及电子装置,以至少解决相关技术中如何提高向终端设备传输数据包的传输效率的技术问题。

根据本申请的一个实施例,提供了一种数据传输方法,包括:响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包,其中,所述数据包包括多个数据分片,所述多个数据分片是基于服务器的传输参数和所述数据包的传输参数确定的,所述多个数据分片中的每一个数据分片均支持复用;从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,在响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包之前,所述方法还包括:从所述服务器的传输参数中确定出所述服务器支持的传输带宽和所述服务器支持连接的终端设备的数量;从所述数据包的传输参数中确定出所述数据包的写入速度以及所述数据包的最大传输时间;获取所述传输带宽和所述最大传输时间之间的第一乘积,以及获取所述终端设备的数量和所述写入速度之间的第二乘积;将所述第一乘积和所述第二乘积之间的商值确定为所述数据包内的每一个数据分片的数据容量;使用所述每一个数据分片的数据容量对所述数据包进行拆分,得到所述多个数据分片,其中,所述每一个数据分片对应有分片编号。

在一个示例性实施例中,从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片:确定出与所述终端设备的设备编号对应的第一数据片段列表,其中,所述第一数据片段列表包括所述多个数据分片中已经传输完毕的第一数据分片;从所述多个数据分片中确定出除了所述第一数据分片之外的第二数据分片,将所述第二数据分片确定为所述待传输数据分片。

在一个示例性实施例中,使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备,包括:确定出所述待传输数据分片的分片编号;在从所述共享内存区域内存储的所有数据分片中查找到所述待传输数据分片的分片编号所对应的数据分片的情况下,如果确定所述分片编号对应的数据分片是所述数据包中的最后一个待传输数据分片,则从多个设备通道内确定出与所述设备编号对应的目标设备通道;使用所述目标设备通道将所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,所述方法还包括:在从所述共享内存区域内存储的所有数据分片中查找到所述分片编号对应的数据分片的情况下,如果确定所述分片编号对应的数据分片不是所述数据包中的最后一个待传输数据分片,则确定出所述共享内存区域的剩余可用内存空间;在确定所述剩余可用内存空间的空间容量大于所述待传输数据分片的数据容量的情况下,从数据库内获取第三数据分片,其中,所述第三数据分片为所述待传输数据分片在所述数据库内的备份数据分片;将所述第三数据分片存储至所述剩余可用存储空间;从多个设备通道内确定出与所述设备编号对应的目标设备通道;使用所述目标设备通道将所述待传输数据分片传输给所述终端设备;在将所述待传输数据分片传输给所述终端设备之后,将所述待传输数据分片的分片编号存储至与所述终端设备的设备编号对应的第二数据片段列表,其中,所述第二数据片段列表包括所述多个数据分片中已经传输完毕的数据分片的分片编号。

在一个示例性实施例中,所述方法还包括:在确定所述剩余可用内存空间的空间容量小于或等于所述待传输数据分片的数据容量的情况下,判断是否存在过期数据分片,其中,所述过期数据分片表示没有在所述数据包的最大传输时间内传输给所述终端设备的数据分片;在确定存在过期数据分片的情况下,删除所述过期数据分片;在确定不存在过期数据分片的情况下,如果确定所述多个数据分片中存在下一个所述待传输数据分片,则使用所述目标设备通道将下一个所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,所述方法还包括:接收所述终端设备在接收到所述待传输数据分片后的反馈信息;在确定所述反馈信息用于指示所述终端设备写入所述待传输数据分片成功的情况下,从第二数据片段列表中删除所述待传输数据分片的分片编号,其中,所述第二数据片段列表包括所述多个数据分片中已经传输完毕的数据分片的分片编号;如果确定所述待传输数据分片当前未被占用,则从所述共享内存区域内删除所述待传输数据分片。

根据本申请的另一个实施例,提供了一种数据传输装置,包括:数据包获取模块,用于响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包,其中,所述数据包包括多个数据分片,所述多个数据分片是基于服务器的传输参数和所述数据包的传输参数确定的,所述多个数据分片中的每一个数据分片均支持复用;数据分片确定模块,用于从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;数据分片传输模块,用于使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。

根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本申请,可以响应于终端设备的升级请求,从共享内存区域获取到与所述升级请求对应的包括多个支持复用的数据分片的数据包,即由于将数据包存储在共享内存区域实现了数据片段的共享复用,进而从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。因此,可以解决相关技术中如何提高向终端设备传输数据包的传输效率的技术问题。

附图说明

图1是本申请实施例的一种数据传输方法的服务器设备的硬件结构框图;

图2是根据本申请实施例的数据传输方法的流程图;

图3是根据本申请实施例的一个数据包的示意图;

图4是根据本申请实施例向不同终端设备发送共享内存区域内的数据包的原理示意图;

图5是根据本申请实施例的数据传输方法的流程示意图;

图6是根据本申请实施例的数据传输装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请的实施例。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种数据传输方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的数据传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种数据传输方法,图2是根据本申请实施例的数据传输方法的流程图,如图2所示,该流程包括如下步骤:

步骤S202,响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包,其中,所述数据包包括多个数据分片,所述多个数据分片是基于服务器的传输参数和所述数据包的传输参数确定的,所述多个数据分片中的每一个数据分片均支持复用;

可以理解的是,对于共享内存区域,可以通过限制共享内存区域的大小,例如基于数据分片的传输情况可以对已传输完毕的数据包中的数据分片进行定期清除,同时还可以对数据分片进行编号,保证所有的存放于共享内存区域的数据分片都是不重复的,从而在带宽有限的情况下提高文件片段的传输效率,降低阻塞其他终端设备文件传输的概率。

步骤S204,从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;

步骤S206,使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。

可以理解的是,将所述数据分片发送给多个终端设备的发送方式至少包括以下之一:并行发送,独立发送。则上述实施例,针对多个终端设备面向同一数据包发起的升级请求,可以以并行的方式将同一数据包所包含的数据分片发送给每一个终端设备,需要说明的是,针对不同终端设备,可能具有不同的待传输数据分片,但是针对每一个终端设备,都要发送同一数据包所包含的所有数据分片。

通过上述步骤,由于响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的包括多个支持复用的数据分片的数据包;从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。解决了相关技术中,如何提高向终端设备传输数据包的传输效率的技术问题。

在一个示例性实施例中,在执行上述步骤S202中响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包的技术方案之前,还进一步实现了如何得到多个数据分片的过程,具体包含以下步骤:步骤S11,从所述服务器的传输参数中确定出所述服务器支持的传输带宽和所述服务器支持连接的终端设备的数量;从所述数据包的传输参数中确定出所述数据包的写入速度以及所述数据包的最大传输时间;步骤S12,获取所述传输带宽和所述最大传输时间之间的第一乘积,以及获取所述终端设备的数量和所述写入速度之间的第二乘积;步骤S13,将所述第一乘积和所述第二乘积之间的商值确定为所述数据包内的每一个数据分片的数据容量;步骤S14,使用所述每一个数据分片的数据容量对所述数据包进行拆分,得到所述多个数据分片,其中,所述每一个数据分片对应有分片编号。

可选的,上述步骤S204还可以包括:从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片:确定出与所述终端设备的设备编号对应的第一数据片段列表,其中,所述第一数据片段列表包括所述多个数据分片中已经传输完毕的第一数据分片;从所述多个数据分片中确定出除了所述第一数据分片之外的第二数据分片,将所述第二数据分片确定为所述待传输数据分片。

在一个示例性实施例中,对于上述步骤S206使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备的实现方案,具体步骤包括:步骤S21,确定出所述待传输数据分片的分片编号;步骤S22,在从所述共享内存区域内存储的所有数据分片中查找到所述待传输数据分片的分片编号所对应的数据分片的情况下,如果确定所述分片编号对应的数据分片是所述数据包中的最后一个待传输数据分片,则从多个设备通道内确定出与所述设备编号对应的目标设备通道;步骤S23,使用所述目标设备通道将所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,除了上述步骤S21至步骤S23之外,还可以包括:步骤S31,在从所述共享内存区域内存储的所有数据分片中查找到所述分片编号对应的数据分片的情况下,如果确定所述分片编号对应的数据分片不是所述数据包中的最后一个待传输数据分片,则确定出所述共享内存区域的剩余可用内存空间;步骤S32,在确定所述剩余可用内存空间的空间容量大于所述待传输数据分片的数据容量的情况下,从数据库内获取第三数据分片,其中,所述第三数据分片为所述待传输数据分片在所述数据库内的备份数据分片;步骤S33,将所述第三数据分片存储至所述剩余可用存储空间;步骤S34,从多个设备通道内确定出与所述设备编号对应的目标设备通道;步骤S35,使用所述目标设备通道将所述待传输数据分片传输给所述终端设备;步骤S36,在将所述待传输数据分片传输给所述终端设备之后,将所述待传输数据分片的分片编号存储至与所述终端设备的设备编号对应的第二数据片段列表,其中,所述第二数据片段列表包括所述多个数据分片中已经传输完毕的数据分片的分片编号。

可选的,在一个实施例中,还可以在终端设备接入时根据共享内存区域的剩余可用内存空间动态调整服务带宽,进而增加可接入终端设备的个数,从而最大化利用共享内存区域。

进一步的,在本实施例中,在确定所述分片编号对应的数据分片不是所述数据包中的最后一个待传输数据分片的情况下,在将所述待传输数据分片传输给所述终端设备之后,继续将所述多个数据分片中的其他待传输数据分片传输给所述终端设备。

在一个示例性实施例中,进一步的,在执行上述步骤S31至步骤S36的同时,还提供了如下实现步骤:步骤S41,在确定所述剩余可用内存空间的空间容量小于或等于所述待传输数据分片的数据容量的情况下,判断是否存在过期数据分片,其中,所述过期数据分片表示没有在所述数据包的最大传输时间内传输给所述终端设备的数据分片;步骤S42,在确定存在过期数据分片的情况下,删除所述过期数据分片;步骤S43,在确定不存在过期数据分片的情况下,如果确定所述多个数据分片中存在下一个所述待传输数据分片,则使用所述目标设备通道将下一个所述待传输数据分片传输给所述终端设备。

可选的,确定出所述共享内存区域的剩余可用内存空间的过程例如包括:判断已设置的共享内存区域是否还有剩余可用空间,则剩余可用空间大小为共享内存区域的总空间容量和共享内存区域的已使用空间容量的差值。

可选的,还可以通过以下方式确定是否存在下一个所述待传输数据分片:确定出与所述终端设备的设备编号对应的第三数据片段列表,其中,所述第三数据片段列表包括所述多个数据分片中待传输数据分片的分片编号。如果从所述第三数据片段列表中可以读取到在所述待传输数据分片的分片编号之后的下一个分片编号,则确定所述多个数据分片中存在下一个所述待传输数据分片。

在本实施例中,通过定时清理过期数据分片,可以减少终端设备单向异常导致服务端数据残留的概率。

在一个示例性实施例中,在执行上述步骤S202至步骤S206之外,进一步提出以下实现方案:接收所述终端设备在接收到所述待传输数据分片后的反馈信息;在确定所述反馈信息用于指示所述终端设备写入所述待传输数据分片成功的情况下,从第二数据片段列表中删除所述待传输数据分片的分片编号,其中,所述第二数据片段列表包括所述多个数据分片中已经传输完毕的数据分片的分片编号;如果确定所述待传输数据分片当前未被占用,则从所述共享内存区域内删除所述待传输数据分片。

可选的,在一个实施例中,结合图3至图5提出以下具体实现流程来对数据传输的过程进行说明,图5是根据本申请实施例的数据传输方法的流程示意图,具体实现步骤如下:

可以理解的是,在传输数据之前,还需以下准备工作:

1,设置共享内存区域的大小MaxShareSize,在共享内存区域中存放从文件流中读取的文件分片片段(即数据包中的数据分片);

2,在服务端创建队列监听程序,以及创建线程池开启多线程来处理面向多个终端设备传输数据的过程;

3,在服务端根据限制的带宽、最大终端设备连接数、终端设备文件写入速率,设置发送文件片段的大小fileSize;假设网络带宽设置为X Mbps、最大终端设备连接数为N、终端设备文件写入W M/s,假设系统为了防止网络阻塞设定t s内文件片段必须传输完成,分片大小(即上述数据分片的数据容量)fileSize计算如下:

可见,分片大小fileSize为固定值,则对于给定的一个请求文件,例如上述数据包,就可以确认数据包中的数据分片的个数,并按照对数据包进行拆分的顺序进行编号,如图3所示,一共存在n个片段(相当于上述数据分片),n为正整数。

需要说明的是,通过固定同一升级文件的数据包的数据分片的大小,进而对数据分片进行编号,可以实现所有存放于共享内存区域的数据分片之间不重复,且均可复用的目的。

步骤S501,终端设备向服务端发起升级包下载请求,发起socket建立连接申请,创建socket连接;

步骤S502,服务端接收到终端设备发起的socket连接请求,首先判断是否达到服务端支持的最大的连接数(即上述服务器支持连接的终端设备的数量),如果是,则执行步骤S503,如果否,则提示终端设备稍后再试,并重新执行步骤S501。

步骤S503,在未超过服务器允许创建的最大连接数的情况下,接入已创建的socket连接,并标记终端设备为clientId,将clientId和对应的socket连接存入缓存。如图4所示,同一服务器可以接入多个终端设备,将共享内存区域中的多个片段(相当于数据分片)并行发送给多个终端设备,例如client 1至client N,都各自对应有一个socket连接。

步骤S504,获取终端设备标记clientId,计算出数据分片的大小后,根据clientId对应的已传输文件片段编号列表(即上述第二数据片段列表),根据总的文件切片数量和已传输文件片段来计算未传输的文件片段(即待传输数据分片),得到未传输的文件片段列表,读取未传输的文件片段列表的第一个编号;

步骤S505,判断共享内存区域中是否存在步骤S504读取的编号对应的数据分片,如果存在则执行步骤S506,如果否,则执行步骤S509。

步骤S506,使用clientId对应的socket连接将共享内存区域的片段发送到终端设备,并更新clientId对应的已传输文件片段编号列表。

进一步的,可以判断该片段是否为最后一个文件片段,如果不是则将ClientId重新放入到待发送的终端设备的队列中。

步骤S507,终端设备在接收文件片段之后,根据编号计算文件片段起始位置,按位写入文件片段,并将写入状态(成功或失败)反馈给服务端。

步骤S508,如果写入状态为写入成功,则删除文件片段与ClientId的关联关系,并判断该文件片段是否被其他线程使用,如果该文件片段没有关联的ClientId,则证明该文件片段暂时未被使用,可以在共享内存区域内清除该文件片段。

步骤S509,如果共享内存中不存在,则判断共享内存区域是否还有可用空间,确定出已使用的分片共享内存区域的大小usedShareSize,如果剩余的空间(MaxShareSize-usedShareSize)大于文件片段的fileSize,即还有可用空间,则共享内存区域未满,则执行步骤S511,否则执行步骤S510。

其中,对于已使用的分片共享内存区域的大小,可以根据已传输的文件片段大小与ClientId的关联的已写入共享内存区域的文件片段个数N计算得到:usedShareSize=N*fileSize。

可以理解的是,在终端设备接入时,还可以根据共享内存区域的剩余内存情况动态调整服务带宽,来增加可接入终端设备的个数。

步骤S510,读取一个新的文件片段到共享内存区域,并发送这个新读取的文件片段到终端设备,同时新增此文件片段的编号至已传输文件片段编号列表。

步骤S511,如果剩余的空间小于文件片段的fileSize,则判断是否存在存放时间过长的片段,如果有则清理过期数据,继续执行步骤S510,如果没有过期清理数据,则执行步骤S512。

步骤S512,判断是否能从未传输的文件片段列表中读取到下一个未传输的文件片段的片段编号,如果可以读取到则执行步骤S505,如果读取不到,则执行步骤S503;

通过上述步骤,在共享内存区域实现文件片段的共享,能够在带宽有限的情况下提高文件片段的传输效率,降低了阻塞其他终端设备文件传输的概率。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在本实施例中还提供了一种数据传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图6是根据本申请实施例的数据传输装置的结构框图,如图6所示,该装置包括:

数据包获取模块62,用于响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包,其中,所述数据包包括多个数据分片,所述多个数据分片是基于服务器的传输参数和所述数据包的传输参数确定的,所述多个数据分片中的每一个数据分片均支持复用;

数据分片确定模块64,用于从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;

数据分片传输模块66,用于使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。

通过上述装置,由于响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的包括多个支持复用的数据分片的数据包;从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。解决了相关技术中,如何提高向终端设备传输数据包的传输效率的技术问题。

在一个示例性实施例中,上述数据传输装置还包括数据包拆分模块,用于实现以下方案:步骤S11,从所述服务器的传输参数中确定出所述服务器支持的传输带宽和所述服务器支持连接的终端设备的数量;从所述数据包的传输参数中确定出所述数据包的写入速度以及所述数据包的最大传输时间;步骤S12,获取所述传输带宽和所述最大传输时间之间的第一乘积,以及获取所述终端设备的数量和所述写入速度之间的第二乘积;步骤S13,将所述第一乘积和所述第二乘积之间的商值确定为所述数据包内的每一个数据分片的数据容量;步骤S14,使用所述每一个数据分片的数据容量对所述数据包进行拆分,得到所述多个数据分片,其中,所述每一个数据分片对应有分片编号。

可选的,上述数据分片确定模块64,还用于:从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片:确定出与所述终端设备的设备编号对应的第一数据片段列表,其中,所述第一数据片段列表包括所述多个数据分片中已经传输完毕的第一数据分片;从所述多个数据分片中确定出除了所述第一数据分片之外的第二数据分片,将所述第二数据分片确定为所述待传输数据分片。

在一个示例性实施例中,上述数据分片传输模块66,还用于实现:步骤S21,确定出所述待传输数据分片的分片编号;步骤S22,在从所述共享内存区域内存储的所有数据分片中查找到所述待传输数据分片的分片编号所对应的数据分片的情况下,如果确定所述分片编号对应的数据分片是所述数据包中的最后一个待传输数据分片,则从多个设备通道内确定出与所述设备编号对应的目标设备通道;步骤S23,使用所述目标设备通道将所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,上述数据分片传输模块66,除了实现上述步骤S21至步骤S23之外,还用于执行:步骤S31,在从所述共享内存区域内存储的所有数据分片中查找到所述分片编号对应的数据分片的情况下,如果确定所述分片编号对应的数据分片不是所述数据包中的最后一个待传输数据分片,则确定出所述共享内存区域的剩余可用内存空间;步骤S32,在确定所述剩余可用内存空间的空间容量大于所述待传输数据分片的数据容量的情况下,从数据库内获取第三数据分片,其中,所述第三数据分片为所述待传输数据分片在所述数据库内的备份数据分片;步骤S33,将所述第三数据分片存储至所述剩余可用存储空间;步骤S34,从多个设备通道内确定出与所述设备编号对应的目标设备通道;步骤S35,使用所述目标设备通道将所述待传输数据分片传输给所述终端设备;步骤S36,在将所述待传输数据分片传输给所述终端设备之后,将所述待传输数据分片的分片编号存储至与所述终端设备的设备编号对应的第二数据片段列表,其中,所述第二数据片段列表包括所述多个数据分片中已经传输完毕的数据分片的分片编号。

可选的,在一个实施例中,上述数据分片传输模块66,还用于在终端设备接入时根据共享内存区域的剩余可用内存空间动态调整服务带宽,进而增加可接入终端设备的个数,从而最大化利用共享内存区域。

在一个示例性实施例中,进一步的,上述数据分片传输模块66,在执行上述步骤S31至步骤S36的同时,还用于实现如下步骤:步骤S41,在确定所述剩余可用内存空间的空间容量小于或等于所述待传输数据分片的数据容量的情况下,判断是否存在过期数据分片,其中,所述过期数据分片表示没有在所述数据包的最大传输时间内传输给所述终端设备的数据分片;步骤S42,在确定存在过期数据分片的情况下,删除所述过期数据分片;步骤S43,在确定不存在过期数据分片的情况下,如果确定所述多个数据分片中存在下一个所述待传输数据分片,则使用所述目标设备通道将下一个所述待传输数据分片传输给所述终端设备。

可选的,上述数据分片传输模块66,还用于:判断已设置的共享内存区域是否还有剩余可用空间,则剩余可用空间大小为共享内存区域的总空间容量和共享内存区域的已使用空间容量的差值。

在一个示例性实施例中,上述数据分片传输模块66,还用于通过以下方式确定是否存在下一个所述待传输数据分片:确定出与所述终端设备的设备编号对应的第三数据片段列表,其中,所述第三数据片段列表包括所述多个数据分片中待传输数据分片的分片编号。如果从所述第三数据片段列表中可以读取到在所述待传输数据分片的分片编号之后的下一个分片编号,则确定所述多个数据分片中存在下一个所述待传输数据分片。

在本实施例中,通过定时清理过期数据分片,可以减少终端设备单向异常导致服务端数据残留的概率。

在一个示例性实施例中,上述数据传输装置还包括反馈信息处理模块,用于:接收所述终端设备在接收到所述待传输数据分片后的反馈信息;在确定所述反馈信息用于指示所述终端设备写入所述待传输数据分片成功的情况下,从第二数据片段列表中删除所述待传输数据分片的分片编号,其中,所述第二数据片段列表包括所述多个数据分片中已经传输完毕的数据分片的分片编号;如果确定所述待传输数据分片当前未被占用,则从所述共享内存区域内删除所述待传输数据分片。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

S1,响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包,其中,所述数据包包括多个数据分片,所述多个数据分片是基于服务器的传输参数和所述数据包的传输参数确定的,所述多个数据分片中的每一个数据分片均支持复用;

S2,从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;

S3,使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,响应于终端设备的升级请求,从共享内存区域获取与所述升级请求对应的数据包,其中,所述数据包包括多个数据分片,所述多个数据分片是基于服务器的传输参数和所述数据包的传输参数确定的,所述多个数据分片中的每一个数据分片均支持复用;

S2,从所述多个数据分片中确定出与所述终端设备的设备编号对应的待传输数据分片;

S3,使用所述终端设备的设备通道将所述待传输数据分片传输给所述终端设备。

在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 相似度预测模型训练方法、设备及计算机可读存储介质
  • 一种用于校正显示设备的灰阶显示曲线的方法、电子设备及计算机可读存储介质
  • 基于事件的数据预测方法、装置、计算机设备和存储介质
  • 设备健康度监控方法、装置、计算机设备及可读存储介质
  • 曲线插补方法、设备及计算机可读存储介质
  • 基于变形度预测烧成曲线的方法、设备及计算机存储介质
  • 基于变形度预测烧成曲线的方法、设备及计算机存储介质
技术分类

06120116541798