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

文档序号:9330562阅读:来源:国知局
]步骤208:确认所述第一 socket的五元组记录的第一五元组值;
[0086]为了保证复位socket连接的唯一"性,选取的五元组值可以明确第一 socket和第二socket,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;通过这五元组值,第一 socket可以找到第二 socket进行复位。
[0087]步骤209:将所述源IP地址和所述源端口号绑定连接请求;
[0088]步骤210:将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二 socket ;
[0089]每个socket对应的IP地址和端口号是唯一的,因此通过在连接请求中绑定源IP地址和源端口号可以准确找到将要连接的第二 socket,而不会建立新的socket连接,值得说明的是,在所述定时器设置的超时时间范围内,可以重复执行步骤210至步骤212,以提高复位socket连接的成功率。
[0090]步骤211:确定所述第二 socket记录的第二五元组值;
[0091]步骤212:对比所述第一五元组值与所述第二 socket记录的第二五元组值是否相同,如果相同,则执行步骤213 ;如果不相同,则执行步骤216 ;
[0092]该步骤211和步骤212是为了校验复位socket连接的正确性和准确性,这是因为,如果不对第一五元组值与所述第二 socket记录的第二五元组值进行对比,则可能造成第二 socket与其他的socket建立连接,此时,第二 socket被占用,则第一 socket将不可以与第二 socket连接,而重新建立新的连接的过程将对业务模块造成一定的影响,尤其地,对于第一 socket所在的客户端启动了防火墙来说,如果设置指定第二 socket连接才允许通过,那么其他的五元组表示的socket连接是不被允许的,而该第二 socket在与第一socket断开期间被其他socket占用后,将导致第一 socket无法建立连接。
[0093]步骤213:恢复所述第一 socket与所述第二 socket的连接;
[0094]步骤214:停止所述定时器;
[0095]步骤215:将所述存储在所述第一缓存队列中的数据请求发送给所述服务端,将所述存储在所述第二缓存队列中的数据发送给所述客户端,结束当前流程;
[0096]步骤216:判断所述定时器是否未超时,如果是,则返回执行步骤210 ;否则执行步骤 217 ;
[0097]步骤217:向所述客户端的业务模块发送数据传输异常的通知。
[0098]在定时器设定超时时间范围内,则重复执行步骤210至步骤212,直至找到对比相同的两个socket对应的五元组值,然后对具有相同的五元组值得两个socket进行复位连接。
[0099]上述步骤201至步骤215主要是在定时器设定的超时时间范围内的复位socket连接的操作步骤,值得说明的是,当超出所述定时器设置的超时时间,所述第一 socket和所述第二 socket仍未成功连接时,向所述客户端的业务模块发送数据传输异常的通知,业务模块可按照现有技术通过人工操作等方式复位socket连接。
[0100]如图3所示,本发明实施例提供一种复位socket连接的装置,该复位socket连接的装置,包括:
[0101]第一确定单元301,用于确定所述客户端和所述服务端间的数据传输异常;
[0102]第一设置单元302,在所述第一确定单元确定数据传输异常后,用于设置所述第一socket的状态为暂停状态,并关闭所述第一 socket的连接;
[0103]第二确定单元303,用于确认处于暂停状态的所述第一 socket的五元组记录的第一五元组值;
[0104]发送请求单元304,用于将所述第二确定单元确认的第一五元组值绑定连接请求,并将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket。
[0105]在本发明另一个实施例中,上述复位socket连接的装置,进一步包括:第二设置单元和定时器单元(图中未示出),其中,
[0106]所述第二设置单元,用于在所述第一 socket的状态为暂停状态时,设置所述第二socket状态为暂停状态,关闭所述第二 socket的连接;
[0107]所述定时器单元,用于设置定时器,为所述定时器设置超时时间,并在所述第二socket状态为暂停状态时,启动所述定时器;
[0108]所述发送请求单元,用于在所述定时器单元为所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket。
[0109]在本发明一个实施例中,上述复位socket连接的装置,进一步包括:发送通知单元(图中未示出),其中,
[0110]所述定时器单元,进一步用于当所述第一 socket和所述第二 socket成功连接时,停止所述定时器;
[0111]所述发送通知单元,用于当超出所述定时器设置的超时时间,所述第一 socket和所述第二 socket仍未成功连接时,向所述客户端的业务模块发送通知。
[0112]在本发明一个实施例中,上述复位socket连接的装置,进一步包括:第一缓存单元(图中未示出),其中,
[0113]所述第一缓存单元,用于在所述第一 socket设置第一缓存队列,在所述第一设置单元设置所述第一 socket处于暂停状态时,将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;当所述第一 socket和所述第二 socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端。
[0114]在本发明一个实施例中,上述复位socket连接的装置,进一步包括:第二缓存单元(图中未示出),其中,
[0115]所述第二缓存单元,用于在所述第一 socket设置第二缓存队列,在所述第一设置单元设置所述第一 socket处于暂停状态时,将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;当所述第一 socket和所述第二 socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端。
[0116]如图4所示,在本发明另一个实施例中,上述复位socket连接的装置,进一步包括:
[0117]对比单元,用于确定所述第二 socket记录的第二五元组值,并将所述第一五元组值与所述第二 socket记录的第二五元组值进行对比;
[0118]如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一 socket与所述第二 socket的连接。
[0119]在本发明又一个实施例中,上述复位socket连接的装置中,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;
[0120]所述发送请求单元,用于将所述源IP地址和所述源端口号绑定连接请求,并将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二 socket。
[0121]本发明所述方案至少可以达到如下有益效果:
[0122]1.通过将客户端的第一 socket和服务端的第二 socket进行连接,进行所述客户端和所述服务端间的数据传输;确定所述客户端和所述服务端间的数据传输异常;设置所述第一 socket的状态为暂停状态,并关闭所述第一 socket的连接;确认所述第一 socket的五元组记录的第一五元组值;将所述第一五元组值绑定连接请求;将所述绑定了所述第一五元组值的连接请求发送给所述第二 socket,使复位socket连接具有自动性。
[0123]2.本发明实施例通过设置定时器,并为该定时器设定超时时间,在所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,当超时仍未复位成功时,将通知业务模块,以使用户察觉,避免该复位socket连接形成死循环,有效地增加了复位socket连接灵活性。
[0124]3.本发明实施例通过在第一 socket和第二 socket分别设置第一缓存队列和第二缓存队列;数据传输异常时,进行复位socket连接过程中,可将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列,将所述服务端向所述客户端发送的数据存储在所述第二缓存队列,从而使得客户端的业务模块和服务端的业务模块均不会察觉socket连接断开;当所述第一 socket和所述第二 socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端,并将所述存储在所述第二缓存队列中的数据发送给所述客户端,该过程可以有效地减少客户端和服务端的业务模块的震荡,从而有效的增加了业务模块办理
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1