CN105049438B - 一种复位socket连接的方法和装置 - Google Patents

一种复位socket连接的方法和装置 Download PDF

Info

Publication number
CN105049438B
CN105049438B CN201510474393.4A CN201510474393A CN105049438B CN 105049438 B CN105049438 B CN 105049438B CN 201510474393 A CN201510474393 A CN 201510474393A CN 105049438 B CN105049438 B CN 105049438B
Authority
CN
China
Prior art keywords
socket
sent
tuple value
client
timer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510474393.4A
Other languages
English (en)
Other versions
CN105049438A (zh
Inventor
李美欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510474393.4A priority Critical patent/CN105049438B/zh
Publication of CN105049438A publication Critical patent/CN105049438A/zh
Application granted granted Critical
Publication of CN105049438B publication Critical patent/CN105049438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种复位socket连接的方法和装置,该方法包括:将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输;确定所述客户端和所述服务端间的数据传输异常;设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;确认所述第一socket的五元组记录的第一五元组值;将所述第一五元组值绑定连接请求;将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,使复位socket连接具有自动性。

Description

一种复位socket连接的方法和装置
技术领域
本发明涉及计算机通信技术领域,特别涉及一种复位socket连接的方法和装置。
背景技术
在计算机之间建立socket连接或者在分布式设备的控制器之间建立socket连接,是实现计算机之间或者分布式设备的控制器之间通信的基础,一旦socket连接链路断开,将导致通信中断,因此,常常需要复位socket连接才能继续通信。
目前,复位socket连接的过程主要是:当socket连接不能正常传输数据时,业务模块将接收到该不能正常通信的通知,该通知以一定形式展现给用户,用户在接收到该通知后,通过向业务模块发送请求,以触发业务模块对socket连接进行复位,以使通信恢复正常。例如:浏览器作为业务模块,当socket连接异常时,该浏览器将接收到该不能正常通信的通知,该通知以网页无法打开的方式展现给用户,用户通过刷新浏览器的网页,就可以触发业务模块对socket连接进行复位,以使通信恢复正常即可以正常浏览网页,即在现有技术中,需要人为干预才能实现复位socket连接。
发明内容
本发明提供一种复位socket连接的方法和装置,使复位socket连接具有自动性。
一种复位socket连接的方法,将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输,还包括:
确定所述客户端和所述服务端间的数据传输异常;
设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;
确认所述第一socket的五元组记录的第一五元组值;
将所述第一五元组值绑定连接请求;
将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
优选地,该方法进一步包括:设置定时器,并为所述定时器设置超时时间;
在所述关闭所述第一socket的连接之后,在所述确认所述第一socket的五元组记录的第一五元组值之前,进一步包括:
设置所述第二socket状态为暂停状态,关闭所述第二socket的连接;
启动所述定时器;
所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,包括:在所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
优选地,在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:
当所述第一socket和所述第二socket成功连接时,停止所述定时器;
当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送通知。
优选地,该方法进一步包括:在所述第一socket设置第一缓存队列;
在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端。
优选地,该方法进一步包括:在所述第二socket设置第二缓存队列;
在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端。
优选地,该方法进一步包括:确定所述第二socket记录的第二五元组值;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:
并将所述第一五元组值与所述第二socket记录的第二五元组值进行对比;
如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。
优选地,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;
所述将所述第一五元组值绑定连接请求,包括:将所述源IP地址和所述源端口号绑定连接请求;
所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,包括:将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二socket。
一种复位socket连接的装置,包括:
第一确定单元,用于确定所述客户端和所述服务端间的数据传输异常;
第一设置单元,在所述第一确定单元确定数据传输异常后,用于设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;
第二确定单元,用于确认处于暂停状态的所述第一socket的五元组记录的第一五元组值;
发送请求单元,用于将所述第二确定单元确认的第一五元组值绑定连接请求,并将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
优选地,该装置进一步包括:第二设置单元和定时器单元,其中,
所述第二设置单元,用于在所述第一socket的状态为暂停状态时,设置所述第二socket状态为暂停状态,关闭所述第二socket的连接;
所述定时器单元,用于设置定时器,为所述定时器设置超时时间,并在所述第二socket状态为暂停状态时,启动所述定时器;
所述发送请求单元,用于在所述定时器单元为所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
优选地,该装置进一步包括:发送通知单元,其中,
所述定时器单元,进一步用于当所述第一socket和所述第二socket成功连接时,停止所述定时器;
所述发送通知单元,用于当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送通知。
优选地,该装置进一步包括:第一缓存单元,其中,
所述第一缓存单元,用于在所述第一socket设置第一缓存队列,在所述第一设置单元设置所述第一socket处于暂停状态时,将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端。
优选地,该装置进一步包括:第二缓存单元,其中,
所述第二缓存单元,用于在所述第二socket设置第二缓存队列,在所述第一设置单元设置所述第一socket处于暂停状态时,将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端。
优选地,该装置进一步包括:
对比单元,用于确定所述第二socket记录的第二五元组值,并将所述第一五元组值与所述第二socket记录的第二五元组值进行对比;
如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。
优选地,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;
所述发送请求单元,用于将所述源IP地址和所述源端口号绑定连接请求,并将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二socket。
本发明实施例提供了一种复位socket连接的方法和装置,该方法包括:将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输;确定所述客户端和所述服务端间的数据传输异常;设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;确认所述第一socket的五元组记录的第一五元组值;将所述第一五元组值绑定连接请求;将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,使复位socket连接具有自动性。
附图说明
图1为本发明实施例提供的一种复位socket连接的方法的流程图;
图2为本发明另一实施例提供的一种复位socket连接的方法的流程图;
图3为本发明实施例提供的一种复位socket连接的装置结构示意图;
图4为本发明另一实施例提供的一种复位socket连接的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种复位socket连接的方法,基于将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输,该方法可以包括如下步骤:
步骤101:确定所述客户端和所述服务端间的数据传输异常;
步骤102:设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;
步骤103:确认所述第一socket的五元组记录的第一五元组值;
步骤104:将所述第一五元组值绑定连接请求;
步骤105:将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
在本发明一个实施例中,对于通过多次自动复位socket连接仍无法实现socket连接复位的,为了防止复位socket连接进入死循环,本发明实施例进一步包括:设置定时器,并为所述定时器设置超时时间;在所述关闭所述第一socket的连接之后,在所述确认所述第一socket的五元组记录的第一五元组值之前,进一步包括:设置所述第二socket状态为暂停状态,关闭所述第二socket的连接;启动所述定时器;所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,包括:在所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
在本发明一个实施例中,为了进一步加强复位socket连接的灵活性,在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket成功连接时,停止所述定时器;当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送通知。
在本发明一个实施例中,为了使复位socket连接过程不会使客户端的业务模块的业务中断,同时,增加客户端的业务模块办理业务的稳定性,该方法进一步包括:在所述第一socket设置第一缓存队列;在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端。
在本发明一个实施例中,为了使复位socket连接过程不会使服务端的业务模块的业务中断,同时,增加服务端的业务模块办理业务的稳定性,该方法进一步包括:在所述第二socket设置第二缓存队列;在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端。
在本发明一个实施例中,在复位过程中,为了使服务端的第二socket不被其他socket连接占用,进一步保证复位socket连接,该方法进一步包括:确定所述第二socket记录的第二五元组值;在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:并将所述第一五元组值与所述第二socket记录的第二五元组值进行对比;如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。
在本发明一个实施例中,为了保证复位socket连接的唯一性,选取的五元组值可以明确第一socket和第二socket,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;所述将所述第一五元组值绑定连接请求,包括:将所述源IP地址和所述源端口号绑定连接请求;所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,包括:将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二socket。
如图2所示,本发明另一实施例提供一种复位socket连接的方法,基于将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输,该方法可以包括如下步骤:
步骤200:设置定时器,并为所述定时器设置超时时间;
在本发明实施例中,可以控制客户端中的第一socket多次发送连接请求,在该步骤中,为了避免一直发送连接请求造成死循环,通过设置定时器,来为发送连接请求设定超时时间,当多次发送连接请求的总时长超过定时器的设定超时时间时,则停止发送连接请求。
步骤201:在所述第一socket设置第一缓存队列,在所述第二socket设置第二缓存队列;
步骤202:确定所述客户端和所述服务端间的数据传输异常;
socket的链路出现故障和socket的物理层出现故障均可引起数据传输异常,这些故障可以以事件通知的方式通知本发明的复位socket连接的装置,而无需通知服务端的业务模块或客户端的业务模块,使得所述客户端和所述服务端感觉不到数据传输异常。
步骤203:将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;
步骤204:将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;
步骤203和步骤204进一步使在客户端发送数据请求或服务端发送数据的过程中,仍然感知不到数据传输异常,那么,客户端和服务端的业务模块可以一直处于工作状态,而不会因为socket连接断开而造成业务模块波动或震荡,影响业务模块进程。例如:用户在客户端通过浏览器浏览网页填写表格的过程中,socket连接突然断开,在现有技术中,网页将立马显示为连接错误,只有通过用户刷新网页即人工复位socket连接,才能重新显示页面;而在本发明实施例中,在计时器设定超时时间范围内,socket连接突然断开和复位socket连接过程,该网页仍然正常显示,该网页并不会受到任何影响。
步骤205:设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;
步骤206:设置所述第二socket状态为暂停状态,关闭所述第二socket的连接;
socket包含有role、state和putle属性,其中,role包括两种值:客户端和服务端;对于本发明实施例中所述第一socket来说,其role对应的值为客户端;而对于本发明实施例中所述第二socket来说,其role对应的值为服务端;第一socket和第二socket中的state均包含三种值:正常运行状态、暂停状态、不可用状态;其中,在正常运行时,该state处于正常运行状态;在数据传输异常时,可将state调整为暂停状态即步骤205和步骤206;当无法自动复位socket连接,如:网线断开导致socket连接断开等等,则将state调整为不可用状态,等待用户修复。
步骤207:启动所述定时器;
在第一socket和第二socket均处于暂停状态时,才开启定时器,开始计时。
步骤208:确认所述第一socket的五元组记录的第一五元组值;
为了保证复位socket连接的唯一性,选取的五元组值可以明确第一socket和第二socket,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;通过这五元组值,第一socket可以找到第二socket进行复位。
步骤209:将所述源IP地址和所述源端口号绑定连接请求;
步骤210:将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二socket;
每个socket对应的IP地址和端口号是唯一的,因此通过在连接请求中绑定源IP地址和源端口号可以准确找到将要连接的第二socket,而不会建立新的socket连接,值得说明的是,在所述定时器设置的超时时间范围内,可以重复执行步骤210至步骤212,以提高复位socket连接的成功率。
步骤211:确定所述第二socket记录的第二五元组值;
步骤212:对比所述第一五元组值与所述第二socket记录的第二五元组值是否相同,如果相同,则执行步骤213;如果不相同,则执行步骤216;
该步骤211和步骤212是为了校验复位socket连接的正确性和准确性,这是因为,如果不对第一五元组值与所述第二socket记录的第二五元组值进行对比,则可能造成第二socket与其他的socket建立连接,此时,第二socket被占用,则第一socket将不可以与第二socket连接,而重新建立新的连接的过程将对业务模块造成一定的影响,尤其地,对于第一socket所在的客户端启动了防火墙来说,如果设置指定第二socket连接才允许通过,那么其他的五元组表示的socket连接是不被允许的,而该第二socket在与第一socket断开期间被其他socket占用后,将导致第一socket无法建立连接。
步骤213:恢复所述第一socket与所述第二socket的连接;
步骤214:停止所述定时器;
步骤215:将所述存储在所述第一缓存队列中的数据请求发送给所述服务端,将所述存储在所述第二缓存队列中的数据发送给所述客户端,结束当前流程;
步骤216:判断所述定时器是否未超时,如果是,则返回执行步骤210;否则执行步骤217;
步骤217:向所述客户端的业务模块发送数据传输异常的通知。
在定时器设定超时时间范围内,则重复执行步骤210至步骤212,直至找到对比相同的两个socket对应的五元组值,然后对具有相同的五元组值得两个socket进行复位连接。
上述步骤201至步骤215主要是在定时器设定的超时时间范围内的复位socket连接的操作步骤,值得说明的是,当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送数据传输异常的通知,业务模块可按照现有技术通过人工操作等方式复位socket连接。
如图3所示,本发明实施例提供一种复位socket连接的装置,该复位socket连接的装置,包括:
第一确定单元301,用于确定所述客户端和所述服务端间的数据传输异常;
第一设置单元302,在所述第一确定单元确定数据传输异常后,用于设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;
第二确定单元303,用于确认处于暂停状态的所述第一socket的五元组记录的第一五元组值;
发送请求单元304,用于将所述第二确定单元确认的第一五元组值绑定连接请求,并将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
在本发明另一个实施例中,上述复位socket连接的装置,进一步包括:第二设置单元和定时器单元(图中未示出),其中,
所述第二设置单元,用于在所述第一socket的状态为暂停状态时,设置所述第二socket状态为暂停状态,关闭所述第二socket的连接;
所述定时器单元,用于设置定时器,为所述定时器设置超时时间,并在所述第二socket状态为暂停状态时,启动所述定时器;
所述发送请求单元,用于在所述定时器单元为所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket。
在本发明一个实施例中,上述复位socket连接的装置,进一步包括:发送通知单元(图中未示出),其中,
所述定时器单元,进一步用于当所述第一socket和所述第二socket成功连接时,停止所述定时器;
所述发送通知单元,用于当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送通知。
在本发明一个实施例中,上述复位socket连接的装置,进一步包括:第一缓存单元(图中未示出),其中,
所述第一缓存单元,用于在所述第一socket设置第一缓存队列,在所述第一设置单元设置所述第一socket处于暂停状态时,将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端。
在本发明一个实施例中,上述复位socket连接的装置,进一步包括:第二缓存单元(图中未示出),其中,
所述第二缓存单元,用于在所述第一socket设置第二缓存队列,在所述第一设置单元设置所述第一socket处于暂停状态时,将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端。
如图4所示,在本发明另一个实施例中,上述复位socket连接的装置,进一步包括:
对比单元,用于确定所述第二socket记录的第二五元组值,并将所述第一五元组值与所述第二socket记录的第二五元组值进行对比;
如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。
在本发明又一个实施例中,上述复位socket连接的装置中,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;
所述发送请求单元,用于将所述源IP地址和所述源端口号绑定连接请求,并将所述绑定了源IP地址和源端口号连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二socket。
本发明所述方案至少可以达到如下有益效果:
1.通过将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输;确定所述客户端和所述服务端间的数据传输异常;设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;确认所述第一socket的五元组记录的第一五元组值;将所述第一五元组值绑定连接请求;将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,使复位socket连接具有自动性。
2.本发明实施例通过设置定时器,并为该定时器设定超时时间,在所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,当超时仍未复位成功时,将通知业务模块,以使用户察觉,避免该复位socket连接形成死循环,有效地增加了复位socket连接灵活性。
3.本发明实施例通过在第一socket和第二socket分别设置第一缓存队列和第二缓存队列;数据传输异常时,进行复位socket连接过程中,可将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列,将所述服务端向所述客户端发送的数据存储在所述第二缓存队列,从而使得客户端的业务模块和服务端的业务模块均不会察觉socket连接断开;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端,并将所述存储在所述第二缓存队列中的数据发送给所述客户端,该过程可以有效地减少客户端和服务端的业务模块的震荡,从而有效的增加了业务模块办理业务的稳定性。
4.本发明实施例中,将第一socket对应的第一五元组值与第二socket对应的第二五元组值进行对比;如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。这是因为,只有五元组值相同才能保证是复位连接,而不是建立的新的连接,通过该过程,是的复位socket连接前后,五元组属性值不变化,让业务模块以及其他相关模块感知不到socket连接的变化。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃〃〃〃〃〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (3)

1.一种复位socket连接的方法,其特征在于,将客户端的第一socket和服务端的第二socket进行连接,进行所述客户端和所述服务端间的数据传输,还包括:
确定所述客户端和所述服务端间的数据传输异常;
设置所述第一socket的状态为暂停状态,并关闭所述第一socket的连接;
确认所述第一socket的五元组记录的第一五元组值;
将所述第一五元组值绑定连接请求;
将所述绑定了所述第一五元组值的连接请求发送给所述第二socket;
进一步包括:设置定时器,并为所述定时器设置超时时间;
在所述关闭所述第一socket的连接之后,在所述确认所述第一socket的五元组记录的第一五元组值之前,进一步包括:
设置所述第二socket状态为暂停状态,关闭所述第二socket的连接;
启动所述定时器;
所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,包括:在所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:
当所述第一socket和所述第二socket成功连接时,停止所述定时器;
当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送通知;
进一步包括:在所述第一socket设置第一缓存队列;
在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端;
和/或,
进一步包括:在所述第二socket设置第二缓存队列;
在所述确定所述客户端和所述服务端间的数据传输异常之后,进一步包括:将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端;
和/或,
进一步包括:确定所述第二socket记录的第二五元组值;
在所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket之后,进一步包括:
并将所述第一五元组值与所述第二socket记录的第二五元组值进行对比;
如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。
2.根据权利要求1所述的方法,其特征在于,所述五元组值,包括:源IP地址、目的IP地址、源端口号、目的端口号和协议;
所述将所述第一五元组值绑定连接请求,包括:将所述源IP地址和所述源端口号绑定连接请求;
所述将所述绑定了所述第一五元组值的连接请求发送给所述第二socket,包括:将所述绑定了源IP地址和源端口号的连接请求,发送给所述目的IP地址、所述目的端口号和所述协议对应的所述第二socket。
3.一种复位socket连接的装置,其特征在于,包括:
第一确定单元,用于确定客户端和服务端间的数据传输异常;
第一设置单元,在第一确定单元确定数据传输异常后,用于设置第一socket的状态为暂停状态,并关闭第一socket的连接;
第二确定单元,用于确认处于暂停状态的第一socket的五元组记录的第一五元组值;
发送请求单元,用于将第二确定单元确认的第一五元组值绑定连接请求,并将绑定了第一五元组值的连接请求发送给第二socket;
进一步包括:第二设置单元和定时器单元,其中,
第二设置单元,用于在第一socket的状态为暂停状态时,设置第二socket状态为暂停状态,关闭第二socket的连接;
所述定时器单元,用于设置定时器,为所述定时器设置超时时间,并在所述第二socket状态为暂停状态时,启动所述定时器;
所述发送请求单元,用于在所述定时器单元为所述定时器设置的超时时间范围内,将所述绑定了所述第一五元组值的连接请求发送给所述第二socket;
进一步包括:发送通知单元,其中,
所述定时器单元,进一步用于当所述第一socket和所述第二socket成功连接时,停止所述定时器;
所述发送通知单元,用于当超出所述定时器设置的超时时间,所述第一socket和所述第二socket仍未成功连接时,向所述客户端的业务模块发送通知;
进一步包括:第一缓存单元,其中,
所述第一缓存单元,用于在所述第一socket设置第一缓存队列,在所述第一设置单元设置所述第一socket处于暂停状态时,将所述客户端向所述服务端发送的数据请求存储在所述第一缓存队列;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第一缓存队列中的数据请求发送给所述服务端;
和/或,
进一步包括:第二缓存单元,其中,
所述第二缓存单元,用于在所述第二socket设置第二缓存队列,在所述第一设置单元设置所述第一socket处于暂停状态时,将所述服务端向所述客户端发送的数据存储在所述第二缓存队列;当所述第一socket和所述第二socket连接恢复后,将所述存储在所述第二缓存队列中的数据发送给所述客户端;
和/或,
进一步包括:
对比单元,用于确定所述第二socket记录的第二五元组值,并将所述第一五元组值与所述第二socket记录的第二五元组值进行对比;
如果所述第一五元组值与所述第二五元组值相同,则恢复所述第一socket与所述第二socket的连接。
CN201510474393.4A 2015-08-05 2015-08-05 一种复位socket连接的方法和装置 Active CN105049438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510474393.4A CN105049438B (zh) 2015-08-05 2015-08-05 一种复位socket连接的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510474393.4A CN105049438B (zh) 2015-08-05 2015-08-05 一种复位socket连接的方法和装置

Publications (2)

Publication Number Publication Date
CN105049438A CN105049438A (zh) 2015-11-11
CN105049438B true CN105049438B (zh) 2018-02-23

Family

ID=54455649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510474393.4A Active CN105049438B (zh) 2015-08-05 2015-08-05 一种复位socket连接的方法和装置

Country Status (1)

Country Link
CN (1) CN105049438B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6320874B1 (en) * 1998-10-07 2001-11-20 Nortel Networks Limited Establishing and terminating connections in a mixed protocol network
CN1437358A (zh) * 2002-02-07 2003-08-20 华为技术有限公司 基于远程登录互联网协议的网络设备中继管理的实现方法
CN101242574A (zh) * 2007-11-30 2008-08-13 上海展桥信息技术有限公司 一种gprs无线终端系统
CN101267448A (zh) * 2008-05-09 2008-09-17 东北大学 一种基于嵌入式qnx操作系统的智能规约转换装置及方法
CN103716323A (zh) * 2013-12-31 2014-04-09 厦门悦讯信息科技有限公司 一种发送心跳包维持长连接的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6320874B1 (en) * 1998-10-07 2001-11-20 Nortel Networks Limited Establishing and terminating connections in a mixed protocol network
CN1437358A (zh) * 2002-02-07 2003-08-20 华为技术有限公司 基于远程登录互联网协议的网络设备中继管理的实现方法
CN101242574A (zh) * 2007-11-30 2008-08-13 上海展桥信息技术有限公司 一种gprs无线终端系统
CN101267448A (zh) * 2008-05-09 2008-09-17 东北大学 一种基于嵌入式qnx操作系统的智能规约转换装置及方法
CN103716323A (zh) * 2013-12-31 2014-04-09 厦门悦讯信息科技有限公司 一种发送心跳包维持长连接的方法

Also Published As

Publication number Publication date
CN105049438A (zh) 2015-11-11

Similar Documents

Publication Publication Date Title
CN105446827B (zh) 一种数据库故障时的数据存储方法和设备
CN108540536B (zh) 基于区块链的网络海量业务处理方法、设备及存储介质
CN108052675A (zh) 日志管理方法、系统及计算机可读存储介质
CN102082733B (zh) 一种Portal系统的接入方法和Portal系统
US20170026280A1 (en) Packet Transmission Method and Apparatus, and Interconnect Interface
CN102333081B (zh) 认证方法、设备及系统
CN104486243B (zh) 数据传输方法、设备及系统
CN103560922A (zh) 一种容灾方法及系统
CN104980524A (zh) 一种weblogic连接池失效监测方法
KR101443071B1 (ko) 웹페이지의 에러 체크 시스템
CN103516587B (zh) 即时通信客户端断线重连的方法和装置
CN104065508A (zh) 应用服务健康检查方法、装置和系统
CN104283716B (zh) 数据传输方法、设备及系统
CN106502944A (zh) 计算机、pcie设备以及pcie设备的心跳检测方法
CN105553809A (zh) 一种stun隧道管理方法及装置
CN103780472A (zh) 一种聚合端口组的选中口管理方法及设备
CN103391303B (zh) 服务故障公告方法及使用该方法的服务器
CN105049438B (zh) 一种复位socket连接的方法和装置
CN104769891A (zh) 用以检测和传达关于通信链路状态的信息的方法和装置
WO2016154921A1 (zh) 一种数据业务的数据传输方法及装置
US11159424B2 (en) Networking aggregation link provisioning system
CN103428022B (zh) 一种备份和恢复网元上配置数据文件的方法及系统
CN103618661A (zh) 一种数据分离方法及系统
CN101355483A (zh) 一种多网口发送数据包的方法和设备
CN101145965A (zh) 一种自动登录电信网管的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant