一种复位socket连接的方法和装置的制造方法_2

文档序号:9330562阅读:来源:国知局
间的数据传输;确定所述客户端和所述服务端间的数据传输异常;设置所述第一 socket的状态为暂停状态,并关闭所述第一 socket的连接;确认所述第一 socket的五元组记录的第一五元组值;将所述第一五元组值绑定连接请求;将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket,使复位socket连接具有自动性。
【附图说明】
[0054]图1为本发明实施例提供的一种复位socket连接的方法的流程图;
[0055]图2为本发明另一实施例提供的一种复位socket连接的方法的流程图;
[0056]图3为本发明实施例提供的一种复位socket连接的装置结构示意图;
[0057]图4为本发明另一实施例提供的一种复位socket连接的装置结构示意图。
【具体实施方式】
[0058]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059]如图1所示,本发明实施例提供一种复位socket连接的方法,基于将客户端的第一socket和服务端的第二 socket进行连接,进行所述客户端和所述服务端间的数据传输,该方法可以包括如下步骤:
[0060]步骤101:确定所述客户端和所述服务端间的数据传输异常;
[0061]步骤102:设置所述第一 socket的状态为暂停状态,并关闭所述第一 socket的连接;
[0062]步骤103:确认所述第一 socket的五元组记录的第一五元组值;
[0063]步骤104:将所述第一五元组值绑定连接请求;
[0064]步骤105:将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket。
[0065]在本发明一个实施例中,对于通过多次自动复位socket连接仍无法实现socket连接复位的,为了防止复位socket连接进入死循环,本发明实施例进一步包括:设置定时器,并为所述定时器设置超时时间;在所述关闭所述第一 socket的连接之后,在所述确认所述第一 socket的五元组记录的第一五元组值之前,进一步包括:设置所述第二 socket状态为暂停状态,关闭所述第二 socket的连接;启动所述定时器;所述将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket,包括:在所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket。
[0066]在本发明一个实施例中,为了进一步加强复位socket连接的灵活性,在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket之后,进一步包括:当所述第一 socket和所述第二 socket成功连接时,停止所述定时器;当超出所述定时器设置的超时时间,所述第一 socket和所述第二 socket仍未成功连接时,向所述客户端的业务模块发送通知。
[0067]在本发明一个实施例中,为了使复位socket连接过程不会使客户端的业务模块的业务中断,同时,增加客户端的业务模块办理业务的稳定性,该方法进一步包括:在所述第一 socket设置第一缓存队列;在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket之后,进一步包括:当所述第一 socket和所述第二 socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端。
[0068]在本发明一个实施例中,为了使复位socket连接过程不会使服务端的业务模块的业务中断,同时,增加服务端的业务模块办理业务的稳定性,该方法进一步包括:在所述第二 socket设置第二缓存队列;在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket之后,进一步包括:当所述第一 socket和所述第二 socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端。
[0069]在本发明一个实施例中,在复位过程中,为了使服务端的第二 socket不被其他socket连接占用,进一步保证复位socket连接,该方法进一步包括:确定所述第二 socket记录的第二五元组值;在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:并将所述第一五元组值与所述第二 socket记录的第二五元组值进行对比;如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一 socket与所述第二 socket的连接。
[0070]在本发明一个实施例中,为了保证复位socket连接的唯一"性,选取的五元组值可以明确第一 S0Cket和第二 socket,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;所述将所述第一五元组值绑定连接请求,包括:将所述源IP地址和所述源端口号绑定连接请求;所述将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket,包括:将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二 socket。
[0071]如图2所示,本发明另一实施例提供一种复位socket连接的方法,基于将客户端的第一 socket和服务端的第二 socket进行连接,进行所述客户端和所述服务端间的数据传输,该方法可以包括如下步骤:
[0072]步骤200:设置定时器,并为所述定时器设置超时时间;
[0073]在本发明实施例中,可以控制客户端中的第一 socket多次发送连接请求,在该步骤中,为了避免一直发送连接请求造成死循环,通过设置定时器,来为发送连接请求设定超时时间,当多次发送连接请求的总时长超过定时器的设定超时时间时,则停止发送连接请求。
[0074]步骤201:在所述第一 socket设置第一缓存队列,在所述第二 socket设置第二缓存队列;
[0075]步骤202:确定所述客户端和所述服务端间的数据传输异常;
[0076]socket的链路出现故障和socket的物理层出现故障均可引起数据传输异常,这些故障可以以事件通知的方式通知本发明的复位socket连接的装置,而无需通知服务端的业务模块或客户端的业务模块,使得所述客户端和所述服务端感觉不到数据传输异常。
[0077]步骤203:将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;
[0078]步骤204:将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;
[0079]步骤203和步骤204进一步使在客户端发送数据请求或服务端发送数据的过程中,仍然感知不到数据传输异常,那么,客户端和服务端的业务模块可以一直处于工作状态,而不会因为socket连接断开而造成业务模块波动或震荡,影响业务模块进程。例如:用户在客户端通过浏览器浏览网页填写表格的过程中,socket连接突然断开,在现有技术中,网页将立马显示为连接错误,只有通过用户刷新网页即人工复位socket连接,才能重新显示页面;而在本发明实施例中,在计时器设定超时时间范围内,socket连接突然断开和复位socket连接过程,该网页仍然正常显示,该网页并不会受到任何影响。
[0080]步骤205:设置所述第一 socket的状态为暂停状态,并关闭所述第一 socket的连接;
[0081]步骤206:设置所述第二 socket状态为暂停状态,关闭所述第二 socket的连接;
[0082]socket包含有role、state和putle属性,其中,role包括两种值:客户端和服务端;对于本发明实施例中所述第一 socket来说,其role对应的值为客户端;而对于本发明实施例中所述第二 socket来说,其role对应的值为服务端;第一 socket和第二 socket中的state均包含三种值:正常运行状态、暂停状态、不可用状态;其中,在正常运行时,该state处于正常运行状态;在数据传输异常时,可将state调整为暂停状态即步骤205和步骤206 ;当无法自动复位socket连接,如:网线断开导致socket连接断开等等,则将state调整为不可用状态,等待用户修复。
[0083]步骤207:启动所述定时器;
[0084]在第一 socket和第二 socket均处于暂停状态时,才开启定时器,开始计时。
[0085
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1