设备间的信息传输方法、装置、电子设备及存储介质与流程

文档序号:17587793发布日期:2019-05-03 21:29阅读:172来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种设备间的信息传输方法、装置、电子设备及存储介质。
背景技术
::tcp(协议传输控制协议,transmissioncontrolprotocol,缩写为tcp)是一种面向连接的、基于字节流的传输层通信协议,由ietf的rfc793定义。在简化的计算机网络osi模型(开放式系统互联通信参考模型,opensysteminterconnectionreferencemodel,缩写为osi)中,它完成第四层传输层所指定的功能。在因特网协议族(internetprotocolsuite)中,tcp层是位于ip层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是ip层不提供这样的流机制,而是提供不可靠的包交换。应用层向tcp层发送用于网间传输的、用8位字节表示的数据流,然后tcp层把数据流分割成适当长度的报文段,通常报文段的大小受该计算机连接的网络的数据链路层的最大传输单元的限制。在此之后,tcp层把报文段传给ip层,由它来通过网络将包传送给接收端实体的ip层,进而传递给接收端实体的tcp层。目前,部分手机游戏使用了上述的tcp协议,用以保持与服务器的连接以及与服务器交互游戏数据。现有技术中,用户在地铁或者公交上玩需要联网的手机游戏时,由于基站的切换会导致网络断开,信息传输中断;玩家的游戏也就中断了,玩家必须重新转到玩家的登录界面,重新输入登录账号与密码,游戏体验较差。可见,现有技术中游戏的断线重连的游戏体验很差,亟待改进。技术实现要素:有鉴于此,本发明实施例提供一种设备间的信息传输方法、装置、电子设备及存储介质。第一方面,本发明实施例提供一种设备间的信息传输方法,应用于第一设备,所述方法包括:获得待发送的报文;将所述报文编号,获得报文编号集合;其中,每一待发送的报文记入一个报文编号;所述报文编号按照所述每一报文发送顺序递增排列;在所述第一设备的缓存中存储所述报文,获得备份报文;基于所述报文编号集合,顺序向第二设备发送所述报文。可选的,在与所述第二设备发生中断并重连所述第二设备后,所述方法还包括:接收由所述第二设备发送的已收报文编号;其中,所述已收报文编号为所述第一设备与所述第二设备中断前,所述第二设备接收到由所述第一设备发送的报文的编号;根据所述已收报文编号、所述报文编号集合以及所述备份报文,获得目标报文;其中,所述目标报文为所述第一设备与所述第二设备中断后,所述第二设备未收到的报文;向所述第二设备发送所述目标报文。可选的,根据所述已收报文编号、所述报文编号集合以及所述备份报文,获得目标报文,包括:根据所述已收报文编号以及所述报文编号集合,确定未收报文编号;其中,所述未收报文编号为所述第一设备与所述第二设备中断后,所述第二设备未收到的报文的编号;遍历所述备份报文,获得与所述未收报文编号对应的报文,将获得的报文确定为所述目标报文。可选的,与所述第二设备发生中断并重连所述第二设备,包括:在预设时间段内,确定是否接收到由所述第二设备发送的应答信息;若在所述预设时间段内未接收到由所述第二设备发送的应答信息,则确定与所述第二设备的发生中断;重连所述第二设备。第二方面,本发明实施例提供一种设备间的信息传输装置,包括:第一获取模块,用于获得待发送的报文;编号模块,用于将所述报文编号,获得报文编号集合;其中,每一待发送的报文记入一个报文编号;所述报文编号按照所述每一报文发送顺序递增排列;备份模块,用于在所述第一设备的缓存中存储所述报文,获得备份报文;发送模块,用于基于所述报文编号集合,顺序向第二设备发送所述报文。可选的,所述装置还包括:接收模块,用于在与所述第二设备发生中断并重连所述第二设备后,接收由所述第二设备发送的已收报文编号;其中,所述已收报文编号为所述第一设备与所述第二设备中断前,所述第二设备接收到由所述第一设备发送的报文的编号;第二获取模块,用于根据所述已收报文编号、所述报文编号集合以及所述备份报文,获得目标报文;其中,所述目标报文为所述第一设备与所述第二设备中断后,所述第二设备未收到的报文;所述发送模块,用于向所述第二设备发送所述目标报文。可选的,所述第二获取模块,包括:报文编号确定单元,用于根据所述已收报文编号以及所述报文编号集合,确定未收报文编号;其中,所述未收报文编号为所述第一设备与所述第二设备中断后,所述第二设备未收到的报文的编号;报文获取单元,用于遍历所述备份报文,获得与所述未收报文编号对应的报文,将获得的报文确定为所述目标报文。可选的,所述装置还包括:中断确定模块,用于在预设时间段内,确定是否接收到由所述第二设备发送的应答信息;若在所述预设时间段内未接收到由所述第二设备发送的应答信息,则确定与所述第二设备的发生中断;重连模块,用于重连所述第二设备。第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的方法。第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一所述的方法。本发明实施例提供的设备间的信息传输方法、装置、电子设备及存储介质。通过获得待发送的报文;将所述报文编号,获得报文编号集合;其中,每一待发送的报文记入一个报文编号;所述报文编号按照所述每一报文发送顺序递增排列;在所述第一设备的缓存中存储所述报文,获得备份报文;基于所述报文编号集合,顺序向第二设备发送所述报文。这样,在第一设备向第二设备发送报文之前,第一设备就会备份发送的报文。而随着网络技术的发展,网络传输件间的速度越来越快,备份报文并不会影响设备间传输的速度,但是如果设备间发生中断,通过备份的报文可以快速恢复设备之间的通信。在用户看来,用户不需要重新登录服务器账号,只需稍作等待,几乎不会影响用户的使用体验。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本发明实施例中的一种设备间的信息传输方法的流程示意图;图2为本发明实施例中的一种设备间的信息传输装置的结构示意图;图3为本发明实施例中的一种电子设备的示意图。具体实施方式下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例中,第一设备可以是服务端的设备也可以是用户终端的设备,例如:第一设备可以是游戏服务器、用户的手机(mobilephone)、个人计算机(personalcomputer,pc)、平板电脑(tabletpersonalcomputer,tabletpc)等,本发明实施例对此不作限定。本发明实施例中,第二设备与第一设备进行配合完成数据的传输,第二设备可以是服务器服务端的设备也可以是终端的设备,例如:第一设备可以是游戏服务器、用户的手机(mobilephone)、个人计算机(personalcomputer,pc)、平板电脑(tabletpersonalcomputer,tabletpc)等,本发明实施例对此不作限定。为了更好的描述本发明的实施例,假设第一设备为游戏服务器,第二设备为用户的手机,需要数据传输的应用为用户手机上的游戏程序。第一方面,本发明实施例提供一种设备间的信息传输方法,如图1所示,本实施例的方法可以包括:s101:获得待发送的报文;本发明实施例中,报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变,报文中包括有报文类型,报文版本,报文长度,报文实体等等信息。本发明实施例中,第一设备通过tcp协议与第二设备进行数据传输,第一设备的应用层向第一设备的tcp层发送用于网间传输的数据流,然后tcp层把数据流分成适当长度的报文。例如,第一设备将需要传输给第二设备的数据分成各个报文,第一设备即获得了待发送的报文。s102:将报文编号,获得报文编号集合;其中,每一待发送的报文记入一个报文编号;报文编号按照每一报文发送顺序递增排列;本发明实施例中,报文编号按照顺序递增排列,例如,从自然数1开始整数递增排列。若共有5个报文,则可以为这5个报文编号为1-5号,具体为编号1的报文(以下称1号报文)、编号2的报文(以下称2号报文)、编号3的报文(以下称3号报文)、编号4的报文(以下称4号报文)、编号5的报文(以下称5号报文)。报文编号合集就为{1号、2号、3号、4号、5号}。s103:在第一设备的缓存中存储报文,获得备份报文;本发明实施例中,第一设备包括有存储区域,该缓存区域的大小,本领域技术人员可以根据实际需要进行设定,本发明实施例对此不作限定。本发明实施例中,继续以上述第一设备发送5个报文为例,在第一设备的缓存中存储1号报文、2号报文、3号报文、4号报文以及5号报文,上述存储后的5个报文即为备份报文,当然不限于上述报文,第一设备可以按照需要发送的报文数量,备份需要发送的报文,本发明实施例对此不作限定。s104:基于报文编号集合,顺序向第二设备发送报文。本发明实施例中,继续以上述第一设备向第二设备发送5个报文为例,按照前述的编号,第一设备按照编号顺序将上述5个报文向第二设备发送。例如,第一设备依次将1号报文、2号报文、3号报文、4号报文以及5号报文,顺序向第二设备发送。本发明实施例中,通过tcp层发送报文的方式可以为:tcp层将需要发送报文向下传递给ip层,由ip层来通过网络协议将该报文传送给另一设备的ip层(如,第二设备的ip层),进而将报文传输给该设备(例如,第二设备)的tcp层,最后通过该设备(例如,第二设备)的tcp层将报文传输给该设备(例如,第二设备)的应用层。现有技术中,网络的传输速率越来越快,通过tcp协议可以全速传输数据,但是一旦设备之间发生了中断,例如游戏服务器与用户终端发生了中断,就会导致服务器与用户终端断开连接,由于用户服务器的tcp层上没有缓存报文数据,当发生中断时,中断前后的数据流都会丢失,用户想要获得丢失的数据流,必须重新登录游戏服务器。即用户需要从游戏界面退出到用户登录界面,通过游戏账号及密码确认身份,登录到游戏服务器,再通过游戏服务器恢复数据流,这样就造成了游戏过程不连续,游戏体验随之下降。更有甚者,由于设备之间发生中断造成数据流丢失,即使用户重新登录到服务器,也无法恢复当前的数据流信息,即用户的游戏信息丢失,游戏体验非常差。本发明实施例中,通过获得待发送的报文;将报文编号,获得报文编号集合;其中,每一待发送的报文记入一个报文编号;报文编号按照每一报文发送顺序递增排列;在第一设备的缓存中存储报文,获得备份报文;基于报文编号集合,顺序向第二设备发送报文。这样,在第一设备向第二设备发送报文之前,第一设备就会备份需要发送的报文。由于在设备缓存中保存着中断时传输的报文信息,即使设备间发生了中断,当设备重连后,只需要通过缓存中的报文信息直接恢复丢失的数据。用户不需要重新登录游戏账号,几乎不会影响用户的使用的体验。此外,由于现有技术中带宽相较于之前有了很大的提升,在发送报文前,缓存报文并不会影响报文传输的速度。所以,本发明实施例可以有效地提升数据传输的稳定性,避免设备中断后只能依靠重新登录服务器恢复所丢失的数据的问题,极大地提升了游戏体验。本发明实施例中,第一设备与第二设备发生中断,第一设备需要与第二设备进行重连。例如,可选的,与第二设备发生中断并重连第二设备,包括:在预设时间段内,确定是否接收到由第二设备发送的应答信息;若在预设时间段内未接收到由第二设备发送的应答信息,则确定与第二设备的发生中断;重连第二设备。本发明实施例中,预设时间段可以1s,2s,5s等,本领域技术人员可以根据实际情况进行设定,本发明实施例对此不作限定。本发明实施例中,应答信息一般是基于报文信息产生的,例如第一设备将一个报文信息发送给第二设备之后,第二设备就会发送一个应答信息表示第二设备已经收到了由第一设备发送的报文信息。本发明实施例中,例如将预设时间段设置为2s,即当第一设备向第二设备发送报文信息后开始计时,2s内是否接收到了由第二设备发送的应答信息,如果第一设备在预设时间段内收到了应答信息,则表明报文信息发送成功;如果在第一设备在预设时间段内没有收到应答信息,则表明第一设备与第二设备发生了中断。在第一设备与第二设备发生中断后,第一设备与第二设备进行重连。本发明实施例中,本领域技术人员可以根据实际需要确定第一设备与第二设备重连的具体方式,本发明实施例对此不作限定。可选的,本发明实施例中,在与第二设备发生中断并重连第二设备后,该方法还包括:接收由第二设备发送的已收报文编号;其中,已收报文编号为第一设备与第二设备中断前,第二设备接收到由第一设备发送的报文的编号;根据已收报文编号、报文编号集合以及备份报文,获得目标报文;其中,目标报文为第一设备与第二设备中断后,第二设备未收到的报文;向第二设备发送目标报文。本发明实施例中,当第一设备与第二设备发生中断后,第二设备获得了中断前已经收到的报文以及该报文的编号,将该报文的编号发送给第一设备。例如,继续以上述第一设备向第二设备发送5个报文为例,若中断发生在传输3号报文时,即第二设备成功的接收了1号报文以及2号报文,即已收报文编号为{1号,2号},第二设备将已收的报文编号发送给第一设备。第一设备收到上述报文编号之后,通过报文编号集合{1号、2号、3号、4号、5号},以及第一设备缓存中备份的报文,确定目标报文。例如,可选的,本发明实施例中,根据已收报文编号、报文编号集合以及备份报文,获得目标报文,包括:根据已收报文编号以及报文编号集合,确定未收报文编号;其中,未收报文编号为第一设备与第二设备中断后,第二设备未收到的报文的编号;遍历备份报文,获得与未收报文编号对应的报文,将获得的报文确定为目标报文。继续上述实施例,本发明实施例中,第一设备收到上述报文编号{1号、2号}之后,通过报文编号集合{1号、2号、3号、4号、5号},确定未收报文编号为{3号、4号、5号}。之后第一设备遍历缓存中的报文,即1号报文、2号报文、3号报文、4号报文以及5号报文,通过未收报文编号,确定未收报文为3号报文、4号报文以及5号报文,即将未收报文确定为目标报文。本发明实施例中,第二设备确定中断发生前收到的报文,进而获得已收报文编号;之后第二设备向第一设备发送已收报文编号,第一设备接收由第二设备发送的已收报文编号后,通过报文编号集合,确定未收报文编号,进而确定第二设备因中断而没有收到的报文,即目标报文;最后,第一设备将目标报文发送给第二设备。这样,即使第一设备与第二设备发生了中断,第一设备也可以通过上述方式快速的将中断时丢掉的报文,及时传输给第二设备。此外,在用户看来,例如,第二设备为用户手机,第一设备为游戏服务器,由于丢掉的报文实际上在tcp层已经通过前述的方式恢复了,因此,用户不需要重新登录到游戏登录界面,只需要稍等片刻,即等待第一设备将中断时丢掉的数据发送给第二设备后,第一设备与第二设备就可以按照正常方式传输数据了。而这个等待的时间,几乎不会被用户察觉到。因此,本发明实施例可以有效地提升传输的稳定性,在设备之间发生中断后,可以快速的恢复丢失的数据。同时,本发明实施例可以有效地避免因设备中断,数据流丢失的问题,避免用户重新登录,极大地提升了用户的游戏体验。第二方面,本发明实施例提供一种设备间的信息传输装置,请参看说明书附图2,该装置20包括:第一获取模块201,用于获得待发送的报文;编号模块202,用于将报文编号,获得报文编号集合;其中,每一待发送的报文记入一个报文编号;报文编号按照每一报文发送顺序递增排列;备份模块203,用于在第一设备的缓存中存储报文,获得备份报文;发送模块204,用于基于报文编号集合,顺序向第二设备发送报文。可选的,装置20还包括:接收模块,用于在与第二设备发生中断并重连第二设备后,接收由第二设备发送的已收报文编号;其中,已收报文编号为第一设备与第二设备中断前,第二设备接收到由第一设备发送的报文的编号;第二获取模块,用于根据已收报文编号、报文编号集合以及备份报文,获得目标报文;其中,目标报文为第一设备与第二设备中断后,第二设备未收到的报文;发送模块,用于向第二设备发送目标报文。可选的,第二获取模块,包括:报文编号确定单元,用于根据已收报文编号以及报文编号集合,确定未收报文编号;其中,未收报文编号为第一设备与第二设备中断后,第二设备未收到的报文的编号;报文获取单元,用于遍历备份报文,获得与未收报文编号对应的报文,将获得的报文确定为目标报文。可选的,装置还包括:中断确定模块,用于在预设时间段内,确定是否接收到由第二设备发送的应答信息;若在预设时间段内未接收到由第二设备发送的应答信息,则确定与第二设备的发生中断;重连模块,用于重连第二设备。本发明实施例还提供一种电子设备,图3为本发明的电子设备一个实施例的结构示意图,可以实现本发明图1或2所示实施例的流程,如图3所示,上述电子设备可以包括:壳体301、处理器302、存储器303、电路板304和电源电路305,其中,电路板304安置在壳体301围成的空间内部,处理器302和存储器303设置在电路板304上;电源电路305,用于为上述电子设备的各个电路或器件供电;存储器303用于存储可执行程序代码;处理器302通过读取存储器303中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一方法实施例所述的方法。处理器302对上述步骤的具体执行过程以及处理器302通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1或2所示实施例的描述,在此不再赘述。该电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子设备。本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例所述的方法步骤。本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一方法实施例提供的方法。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1