一种在线检测的方法及邮件服务器的制作方法

文档序号:7695401阅读:168来源:国知局

专利名称::一种在线检测的方法及邮件服务器的制作方法
技术领域
:本发明涉及通信
技术领域
,尤其涉及一种在线检测的方法及邮件服务器。技术背景目前邮件服务器对手机终端是否处于在线状态采用基于应用层心跳的方法,具体的,可以包括在基于邮局协议(POP)的基础上,进行协议扩展心跳的请求及应答机制。终端每隔一段时间发送一个心跳信息给邮件服务器,该心跳信息用于通知邮件服务器终端仍然处于在线状态,以及终端当前的IP地址。在实现本发明的过程中,发明人发现现有技术至少存在以下问题由于采用了应用层心跳进行连接有效性(即在线状态)的检测,所以在应用层协议中需要增加关于心跳请求及应答的命令类型和数据格式,而增加的命令类型和数据格式定义对于协议的双方是一种额外的开销并增加了协议实现的复杂度。进而,还带来了手机终端的电量消耗,以及增大了终端与邮件服务器之间的数据流量。
发明内容本发明实施例的目的在于提供一种在线检测的方法及邮件服务器,利用传输层实现对终端在线状态的检测。本发明实施例提供一种在线检测的方法,该方法包括邮件服务器在预定时间内没有与终端交互数据,则所述邮件服务器向所述终端发送保活包;所述邮件服务器接收所述终端的保活响应,所述保活响应用于指示所述终端是否在线;当所述保活响应指示所述终端在线时,所述邮件服务器与所述终端交互数据。进一步的,所述邮件服务器在预定时间内没有与终端交互数据包括所述邮件服务器在预定时间内没有接收到来自所述终端的数据;和/或,所述邮件服务器在预定时间内没有向所述终端成功发送数据。进一步的,所述邮件服务器向所述终端发送保活包包括所述邮件服务器向所述终端发送至少一个保持保活探测分节。进一步的,该方法还包括当所述保活响应指示所述终端不在线时,所述邮件服务器终止与所述终端之间的连4妄。进一步的,所述终端不在线包括所述终端进程崩溃、所述终端主机崩溃和/或所述终端主机不可达。本发明实施例还公开一种在线检测的邮件服务器,该服务器包括检测单元,用于当所述邮件服务器在预定时间内没有与终端交互数据,则向所述终端发送保活包;交互单元,用于接收所述终端对所述检测单元发送的保活包的保活响应,所述保活响应用于指示所述终端是否在线;并当所述保活响应指示所述终端在线时,与所述终端交互数据。进一步的,该服务器还包括断开单元,用于当所述交互单元接收的保活响应指示所述终端不在线时,终止与所述终端之间的连接。本发明实施例采用传输层的保活机制,邮件服务器在预定时间内与终端没有交互数据,则进行保活探测,如果探测结果显示终端在线则继续交互数据;如果不在线,则可以断开连接,避免了在客户端程序崩溃、或者由于网络原因终端连接时,邮件服务器不用处于挂起状态,永远等待下去。而且相对于现有技术在应用层协议上扩展的在线状态检测方法而言,采用本发明实施例的技术方案,在传输层实现,避免了在应用层协议上扩展,有效的降低了终端的电量消耗和对带宽的占用。图1所示为本发明实施例一中在线检测方法的流程示意图;图2所示为本发明实施例二中在线检测方法的流程示意图;图3所示为本发明实施例三中在线检测方法的流程示意图;具体实施例方式下面结合附图对本发明实施例的具体实施方式做进一步的详细阐述。传输层(TCP)保活(Keep-Alive)机制是一种用来检测处于空闲(IDLE)状态的连接是否还保活的机制。通过Keep-Alive机制使得服务应用程序在终端(以下称客户端)程序崩溃或由于网络原因而中断连接时能够探测到而不至于处于桂起状态,永远等待下去。在TCP的实现中如果包括了Keep-Alives特性,应用程序能够针对每个连接打开或关闭此特性,默认关闭状态。Keep-Alives的数据包只有在间隔时间后,连接上没有数据发送或接收时才能发送。间隔时间是可以配置的,缺省配置为2小时,目前大多少系统都支持对此默认值的修改。TCPKeep-Alive并不是TCP规范中的一部分,但是目前大部分操作系统及智能手机终端的TCP/IP实现中都支持此功能。给一个TCP的接口设置保活(keepalive)选项后,如果2小时(默认缺省值)内在此接口的任一方向都没有数据交互,通过该TCP接口自动给对方发一个保持保活探测分节。这是一个对方必须响应的TCP分节。此选项一般由服务器使用,服务器大部分时间阻塞于等待TCP连接上的输入,如果客户主机崩溃,服务器进程将永远不会知道,并将继续等待永远不会到达的输入,保持保活选项将^^测出这些半开连接(即不在线状态)并终止与客户端的连接。请参阅表l,是检测各种TCP条件的方法,根据各种对保持保活探测分节的响应,判断对方是否处于在线状态,其中,不在线的状态包括但不限于客户端进程崩溃、客户端主机崩溃和/或客户端主机不可达。请参阅图1,一种在线;险测的方法,该方法包括101、邮件服务器在预定时间内没有与客户端交互数据,则邮件服务器向客户端发送保活包。其中,邮件服务器在预定时间内没有与客户端交互数据包括<table>tableseeoriginaldocumentpage6</column></row><table>表1邮件服务器在预定时间内没有接收到来自客户端的数据;和/或,邮件服务器在预定时间内没有向客户端成功发送数据。邮件服务器向客户端发送保活包包括邮件服务器向客户端发送至少一个保持保活探测分节;即邮件服务器可以只发送一个保持保活探测分节,也可以连续发送两个或两个以上的保持保活探测分节。102、邮件服务器接收客户端的保活响应;保活响应用于指示客户端是否在线,当保活响应指示客户端在线时,转入103;当保活响应指示客户端不在线时,转入104。其中客户端不在线包括但不限于客户端进程崩溃、客户端主机崩溃和/或客户端主才几不可达。103、邮件服务器与客户端交互数据。104、邮件服务器终止与客户端之间的连接。本实施例采用传输层的保活机制,邮件服务器在预定时间内与终端没有交互数据,则进行保活探测,如果探测结果显示终端在线则继续交互数据;如果不在线,则可以断开连接,避免了在客户端程序崩溃、或者由于网络原因终端连接时,邮件服务器不用处于挂起状态,永远等待下去。而且相对于现有技术在应用层协议上扩展的在线状态检测方法而言,釆用本实施例的技术方案,在传输层实现,避免了在应用层协议上扩展,有效的降低了终端的电量消耗和对带宽的占用。实施例二,将实施例一的技术方案具体应用到服务器中。在服务器中给一个TCP的接口设置保活(keepalive)选项后,如果2小时(默认缺省值)内在此接口的任一方向都没有数据交互,TCP就自动给对方发一个保持保活探测分节。这是一个对方必须响应的TCP分节。具体的,请参阅图2,图2中描述字(Socket),是使应用程序能够读写与收发通讯协定(protocol)与资料的程序服务器在指定端口建立监听。并在指定描述字(Socket)上等待指定事件发生。判断是否超时,如果超时,则返回在指定Socket上等待指定事件发生;如果没有超时,则取得所有准备好的Socket。进一步的,判断是否存在准备好的Socket需要处理,如果存在,则取出Socket;如果不存在,则返回在指定Socket上等待指定事件发生。取出Socket后,判断是否请求连接事件,如果是,则保存连接状态到全局的Socket列表中,并返回判断是否存在准备好的Socket需要处理。如果否,进一步判断远程主机是否超时或不可达,如果远程主机超时或不可达,则从全局的Socket列表中移除相关的Socket,移除后返回判断是否存在准备好的Socket需要处理;如果远程主机未超时或不可达,则处理其他情况,例如接收数据或发送数据,处理后返回判断是否存在准备好的Socket需要处理。实施例三,将实施例一的技术方案具体应用到客户端中。具体的,请参阅图3:客户端连接服务器。客户端在同服务器连接的Socket上等待事件发生。判断是否超时,如果是,则返回在同服务器连接的Socket上等待事件发生;如果否,进一步判断远程主机是否超时或不可达。如果主机超时或不可达,则返回连接服务器;如果主机未超时或不可达,则处理其他情况,例如接收数据或发送数据,处理后返回在同服务器连接的Socket上等待事件发生。实施例四,是执行实施例一在线检测方法的主体,请参阅图4,一种在线检测的邮件服务器,该服务器包括检测单元401,用于当邮件服务器在预定时间内没有与客户端交互数据,则向客户端发送保活包;交互单元402,用于接收客户端对检测单元发送的保活包的保活响应,保活响应用于指示客户端是否在线;并当保活响应指示客户端在线时,与客户端交互数据。进一步的,该服务器还包括断开单元403,用于当交互单元接收的保活响应指示客户端不在线时,终止与客户端之间的连4妄。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对
背景技术
做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。以上所述仅是本发明的具体实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1、一种在线检测的方法,其特征在于,该方法包括邮件服务器在预定时间内没有与终端交互数据,则所述邮件服务器向所述终端发送保活包;所述邮件服务器接收所述终端的保活响应,所述保活响应用于指示所述终端是否在线;当所述保活响应指示所述终端在线时,所述邮件服务器与所述终端交互数据。2、根据权利要求1所述的方法,其特征在于,所述邮件服务器在预定时间内没有与终端交互数据包括所述邮件服务器在预定时间内没有接收到来自所述终端的数据;和/或,所述邮件服务器在预定时间内没有向所述终端成功发送数据。3、根据权利要求1所述的方法,其特征在于,所述邮件服务器向所述终端发送保活包包括所述邮件服务器向所述终端发送至少一个保持保活探测分节。4、根据权利要求1所述的方法,其特征在于,该方法还包括当所述保活响应指示所述终端不在线时,所述邮件服务器终止与所述终端之间的连接。5、根据权利要求4所述的方法,其特征在于,所述终端不在线包括所述终端进程崩溃、所述终端主机崩溃和/或所述终端主机不可达。6、一种在线检测的邮件服务器,其特征在于,该服务器包括检测单元,用于当所述邮件服务器在预定时间内没有与终端交互数据,则向所述终端发送保活包;交互单元,用于接收所述终端对所述检测单元发送的保活包的保活响应,所述保活响应用于指示所述终端是否在线;并当所述保活响应指示所述终端在线时,与所述终端交互lt据。7、根据权利要求6所述的邮件服务器,其特征在于,该服务器还包括断开单元,用于当所述交互单元接收的保活响应指示所述终端不在线时,终止与所述终端之间的连4妄。全文摘要本发明实施例公开了一种在线检测的方法,该方法包括邮件服务器在预定时间内没有与终端交互数据,则所述邮件服务器向所述终端发送保活包;所述邮件服务器接收所述终端的保活响应,所述保活响应用于指示所述终端是否在线;当所述保活响应指示所述终端在线时,所述邮件服务器与所述终端交互数据。及在线检测的邮件服务器,采用传输层的保活机制,邮件服务器在预定时间内与终端没有交互数据,则进行保活探测,在传输层实现,避免了在应用层协议上扩展,有效地降低了终端的电量消耗和对带宽的占用。文档编号H04L29/08GK101299689SQ20081011524公开日2008年11月5日申请日期2008年6月19日优先权日2008年6月19日发明者张跃华,锐杨,肖保锋申请人:北京立通无限科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1