System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种客户端与服务器间的断线重连方法和系统技术方案_技高网

一种客户端与服务器间的断线重连方法和系统技术方案

技术编号:40872929 阅读:2 留言:0更新日期:2024-04-08 16:40
本申请提供了一种客户端与服务器间的断线重连方法、系统、计算设备和计算机可读存储介质,该方法中,客户端在发送数据包时,将数据包同时在本地存储,服务器在返回数据包时也会包括最新收到的客户端数据包序号;客户端根据这个序号,就可以知道哪些发出数据包已经被服务器收到,对于服务器没有收到的数据包,在重连时从本地队列取出再次发送即可。同时,服务器也缓存最新收到的客户端数据包序号;断线重连后,客户端会将自己认为的没有发送成功的协议包全部发送一遍,服务器可以根据自己保存的序号,丢弃掉被重复发送的请求。重连时,服务器只是重新发送真正丢失的数据包,而且由于客户端一直在清理自己缓存的数据队列,所以重连后的数据量双方都比较小,从而用较少的流量完成了网络重连。

【技术实现步骤摘要】

本申请涉及计算机,特别涉及一种客户端与服务器间的断线重连方法、系统、计算设备和计算机可读存储介质。


技术介绍

1、现有技术中,网络游戏是一种实时性要求很强的应用,有大量的客户端实时连接至服务器上。但是用户在公交、地铁等网络信号受限场所时容易出现断线的情况。现有技术中当出现断线时会登出游戏,待网络恢复后需要用户自行重新登录;这一过程也可以自动完成,让画面保持在断线的场景中,但需要收发的数据量并没有减少,会消耗用户的数据流量。若网络信号持续较差,很可能无法一次就完成重连操作,从而浪费更多的数据流量。因此,亟需一种客户端与服务器间的断线重连方案,即可以不打断用户的操作,又能够尽可能少的消耗流量。


技术实现思路

1、有鉴于此,本申请例提供了一种客户端与服务器间的断线重连方法、系统、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

2、根据本申请实施例的第一方面,提供了一种客户端与服务器间的断线重连方法,包括:

3、客户端生成待发送的请求数据包,在所述请求数据包的协议标头中加入第一序号,所述第一序号根据所述请求数据包进行自增;

4、客户端发送所述请求数据包给服务器,并将发送的请求数据包存入客户端本地的第一数据队列;

5、服务器接收请求数据包解析得到所述第一序号后保存为本地的第二序号;

6、服务器构造响应数据包,并在所述响应数据包的协议标头中加入第一序号以及第三序号,所述第一序号等于所述第二序号,所述第三序号根据响应数据包进行自增;

7、服务器发送所述响应数据包给客户端,并将所述响应数据包保存在服务器本地的第二数据队列;

8、客户端收到所述响应数据包后,获取其协议标头中的第一序号和第三序号,分别保存为本地的第四序号和第五序号;

9、客户端根据所述第四序号对所述第一数据队列的数据包进行清理;

10、当中断发生后,客户端重新建立与服务器的连接并构建重连数据包;将所述重连数据包与所述第一数据队列中的请求数据包发送给服务器,所述重连数据包括第五序号;

11、服务器接收重连数据包解析得到所述第五序号,将所述第二数据队列中数据包的第三序号大于所述第五序号的数据包再次发送给客户端;

12、服务器判断接收的请求数据包的第一序号与服务器本地保存的所述第二序号的大小,如果第一序号小于等于第二序号,服务器丢弃所述请求数据包;若第一序号大于第二序号,服务器对所述请求数据包进行正常处理。

13、根据本申请实施例的第二方面,提供了一种用于客户端的断线重连方法,包括:

14、生成待发送的请求数据包,在所述请求数据包的协议标头中加入第一序号,所述第一序号根据所述请求数据包进行自增;

15、发送请求数据包给服务器,并将发送的请求数据包存入客户端本地的第一数据队列;

16、收到服务器的响应数据包后,获取其协议标头中的第一序号和第三序号,分别保存为本地的第四序号和第五序号;

17、所述第三序号根据服务器的响应数据包进行自增;

18、根据第四序号对第一数据队列的数据包进行清理;

19、当中断发生后,重新建立与服务器的连接,构建重连数据包后发送给服务器,该重连数据包括第五序号;

20、进一步将第一数据队列中的请求数据包发送给服务器后,接收服务器的响应数据包。

21、根据本申请实施例的第三方面,提供了一种用于服务器的断线重连方法,包括:

22、接收客户端的请求数据包,解析所述请求数据包的协议标头得到第一序号后保存为本地的第二序号;所述第一序号为客户端根据请求数据包进行自增的一个序号;

23、构造响应数据包,在所述响应数据包的协议标头中加入第一序号以及第三序号,所述第一序号等于所述第二序号,所述第三序号根据服务器的响应数据包进行自增;

24、发送响应数据包给客户端后,将所述响应数据包保存在本地的第二数据队列;

25、当中断发生后,重新建立与客户端的连接;

26、接收客户端的重连数据包解析得到第五序号,所述第五序号为客户端接收响应数据包解析得到的第三序号在所述客户端的本地保存;将第二数据队列中数据包的第三序号大于第五序号的数据包再次发送给客户端;

27、接收客户端的请求数据包后,将所述请求数据包的第一序号与服务器本地保存的第二序号进行比较,若第一序号小于等于第二序号,服务器直接丢弃该数据包;若第一序号大于第二序号,服务器对该请求数据包进行正常处理。

28、根据本申请实施例的第四方面,提供了一种客户端,通过上述用于客户端的断线重连方法实现了与服务器之间的通信。

29、根据本申请实施例的第五方面,提供了一种服务器,通过上述用于服务器的断线重连方法实现了与客户端之间的通信。

30、根据本申请实施例的第六方面,提供了一种客户端与服务器间的断线重连系统,包括客户端与服务器,根据上述客户端与服务器间的断线重连方法实现了客户端与服务器之间的通信。

31、根据本申请实施例的第七方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述方法的步骤。

32、根据本申请实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行所述方法的步骤。

33、在本申请的实施例中,客户端在发送数据包时,将这些数据包同时在本地存储,服务器在返回数据包时也会包括最新收到的客户端数据包序号;客户端根据这个序号,就可以知道哪些发出数据包已经被服务器收到,对于服务器没有收到的数据包,在重连时从本地队列取出再次发送即可。同时,服务器也缓存最新收到的客户端数据包序号;断线重连后,客户端会将自己认为的没有发送成功的协议包全部发送一遍,服务器可以根据自己保存的序号,丢弃掉被重复发送的请求。从而,客户端无需每次等待服务器回复每个请求后再发送下一个请求,服务器也可以在任意时刻推送自己的消息,充分地利用了网络的全双工特性。每次重连,服务器只是重新发送真正丢失的数据包,而且由于客户端一直在清理自己缓存的数据队列,所以重连后的数据量双方都比较小,从而用较少的流量完成了网络重连。

本文档来自技高网...

【技术保护点】

1.一种客户端与服务器间的断线重连方法,其特征在于,包括:

2.根据权利要求1的方法,其中,所述客户端根据所述第四序号对所述第一数据队列的数据包进行清理包括:

3.根据权利要求1的方法,其中,该方法还包括,服务器在正常的收包逻辑中,也判断接收的请求数据包的第一序号与服务器本地保存的所述第二序号的大小。

4.根据权利要求1所述的方法,其中,该方法还包括:客户端发送重连数据包后,等待服务器的重连回复后再发送第一数据队列中的请求数据包。

5.一种用于客户端的断线重连方法,其特征在于,包括:

6.一种用于服务器的断线重连方法,其特征在于,包括:

7.一种客户端,其特征在于,所述客户端根据权利要求5所述的方法实现与服务器之间的通信。

8.一种服务器,其特征在于,所述服务器根据权利要求6所述的方法实现与客户端之间的通信。

9.一种客户端与服务器间的断线重连系统,包括客户端与服务器,其特征在于,根据权利要求1所述的方法实现所述客户端与服务器之间的通信。

10.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-6任意一项所述方法的步骤。

11.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-6任意一项所述方法的步骤。

...

【技术特征摘要】

1.一种客户端与服务器间的断线重连方法,其特征在于,包括:

2.根据权利要求1的方法,其中,所述客户端根据所述第四序号对所述第一数据队列的数据包进行清理包括:

3.根据权利要求1的方法,其中,该方法还包括,服务器在正常的收包逻辑中,也判断接收的请求数据包的第一序号与服务器本地保存的所述第二序号的大小。

4.根据权利要求1所述的方法,其中,该方法还包括:客户端发送重连数据包后,等待服务器的重连回复后再发送第一数据队列中的请求数据包。

5.一种用于客户端的断线重连方法,其特征在于,包括:

6.一种用于服务器的断线重连方法,其特征在于,包括:

7.一种客户端,...

【专利技术属性】
技术研发人员:黄杰扈红柯石凯郭子文李建良杨东何雨泉乐坚强林逸杨利华袁冠鹏
申请(专利权)人:在线途游北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1