本发明属于网络监测领域,尤其涉及一种双网心跳监测方法及系统。
背景技术:
网络中的接收和发送数据都是通过操作系统中的socket实现的。但如果此套机制断开,发送数据和接收数据的时候就会出现问题,这就需要在系统中创建心跳监听机制。
传统“心跳”是指定时发送一个自定义的结构体(心跳包或心跳帧),即客户端定时发送一个固定信息给服务端,服务端收到后回复一个固定信息,让对方知道自己“在线”,以确保链接的有效性,但是此种“心跳”机制无法显示网络状态,会造成即使网络掉线了,客户端一直给服务器端发送信息,即使因为掉线服务器端收不到信息、不回信息,客户端仍旧定时发送,会造成网络掉线无法及时恢复。
技术实现要素:
有鉴于此,本发明提供一种双网心跳监测方法及系统,用以解决无法实时监控主机在线状态的问题,保证了系统的可靠性。
本发明采用以下技术方案:
一种双网心跳监测方法,其中,包括如下步骤:
步骤1,检测监测设备是否上线;若上线,则执行步骤2,若未上线,则返回步骤1重新检测;
步骤2,获取监测设备连接的网络类型;
步骤3,根据检测到的网络类型选择网络发送心跳信号给服务器端;
步骤4,检测监测设备是否收到服务器发送的心跳回复信息;若收到心跳回复信息,则返回步骤1;若未收到,则继续检测是否累计三次未收到心跳回复信息,若是,则重启监测设备,若否,则返回步骤1。
优选的,所述心跳信号的数据包中包括:电压信号、网络信号、防火墙状态信号和故障信号;所述网络信号包括网络类型信号和网络信号强度值。
优选的,还包括步骤5,初始化步骤,包括:
启动监测设备的cpu内核;
初始化内存、ucos和外设;
读取flash信息;
网络连接初始化。
优选的,还包括步骤6,监测设备的主机cpu检测外部设备信息,包括:
检测主机状态;包括电压状态、电源状态、防火墙状态及网络信号强度;
检测外部设备是否故障;包括主机网络连接是否正常;若网络连接不正常,则检测网卡及网线是否正常工作。
优选的,所述步骤3,根据检测到的网络类型选择网络发送心跳信号给服务器端,包括:
根据检测到的网络类型选择心跳信号类型;所述心跳信号类型包括无线连接心跳信号和有线连接心跳信号;
每隔预设时间发送心跳信号。
优选的,所述预设时间为20秒。
一种双网心跳监测系统,包括:
第一检测模块,用于检测监测设备是否上线;若上线,则获取监测设备连接的网络类型,若未上线,则重新检测;
获取模块,用于获取监测设备连接的网络类型;
发送模块,用于根据检测到的网络类型选择网络发送心跳信号给服务器端;
第二检测模块,用于检测监测设备是否收到服务器发送的心跳回复信息;若收到心跳回复信息,则检测监测设备是否上线;若未收到,则继续检测是否累计三次未收到心跳回复信息,若是,则重启监测设备,若否,则检测监测设备是否上线。
优选的,还包括初始化模块,包括:
启动子模块,用于启动监测设备的cpu内核;
第一初始化子模块,用于初始化内存、ucos和外设;
读取子模块,用于读取flash信息;
第二初始化子模块,用于网络连接初始化。
优选的,还包括第三检测模块,包括:
第一检测子模块,用于检测主机状态;包括电压状态、电源状态、防火墙状态及网络信号强度;
第二检测子模块,用于检测外部设备是否故障;包括主机网络连接是否正常;若网络连接不正常,则检测网卡及网线是否正常工作。
优选的,所述发送模块,包括:
选择子模块,用于根据检测到的网络类型选择心跳信号类型;所述心跳信号类型包括无线连接心跳信号和有线连接心跳信号;
发送子模块,用于每隔预设时间发送心跳信号。
本发明的有益效果如下:
本发明是在传统“心跳”机制上进一步开发,主机cpu检测到设备状态,如供电情况、网线拔出、防火墙断线、网络类型、gprs的信号值等,同时在心跳里面加入主机的状态信息,将以上信息和一些必要的同步信息(例如布撤防信息、故障信息等)发送给服务器,服务器解析该数据并通过平台显示。同时在心跳基础上再次增加心跳的种类,使同一个设备心跳能够区分不同联网类型,从而通过心跳类型来区分不同的网络,比如gprs无线网络和有线internet网络,并在应用层处理网络连接。
本发明尤其适于报警系统,可以检查到报警器断电、网线拔出、防火墙断线,并在逻辑层处理断线,通过心跳类别来区分不同网络,实现了实时监控主机在线状态,保证了系统的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种双网心跳监测方法的流程图。
图2是本发明一种双网心跳监测系统的框图。
图3是本发明一种双网心跳监测系统中初始化模块的框图。
图4是本发明一种双网心跳监测系统中第三检测模块的框图。
图5是本发明一种双网心跳监测系统中发送模块的框图。
具体实施方式
本实施例提供一种双网心跳监测方法,包括如下步骤:
步骤1,检测监测设备是否上线;若上线,则执行步骤2,若未上线,则返回步骤1重新检测;
步骤2,获取监测设备连接的网络类型;
步骤3,根据检测到的网络类型选择网络发送心跳信号给服务器端;
步骤4,检测监测设备是否收到服务器发送的心跳回复信息;若收到心跳回复信息,则返回步骤1;若未收到,则继续检测是否累计三次未收到心跳回复信息,若是,则重启监测设备,若否,则返回步骤1。
该实施例中,报警器的主机cpu检测外部设备信息和网络类型,设备向服务器端发送的心跳信号的数据包中加入了主机的状态信息和网络信号信息,能够根据心跳信号来区分不同的网络,例如gprs无线网络和有线internet网络。设备可以根据检测到的网络类型来选择该网络发送心跳信号,例如网络连接为无线网络,客户端选择该无线网络发送心跳信号给服务器端。为避免检测错误,只有当连续累计三次没有收到心跳回复信息时,才重启设备,若未达到连续累计三次,则返回步骤1重新检测。
在一个实施例中,该方法还包括步骤5,初始化步骤:包括:
启动cpu内核;
初始化内存、ucos和主机外设;
读取flash信息;
网络连接初始化。
该实施例中,初始化步骤执行在所有步骤之前,先执行初始化步骤,将主机cpu内存、ucos和外设进行初始化,读取flash信息,网络连接初始化,初始化步骤完成后进行下一步骤。
在一个实施例中,还包括步骤6,监测设备的主机cpu检测外部设备信息,包括:
检测主机状态;包括电压状态、电源状态、防火墙状态及网络信号强度;
检测外部设备是否故障;包括主机网络连接是否正常;若网络连接不正常,则检测网卡及网线是否正常工作。
该实施例中,主机cpu检测外部设备信息,检测主机的状态及是否有故障,检测到的信息包括:电压状态(包括电压是否正常、是否欠压),电源状态(电源是否正常工作,是否有断电情况),防火墙状态(防火墙是否正常),网络信号强度(包括网络信号强度及信号值),网络连接是否正常,是否有网线拔出等情况。将检测到的这些信息加入心跳信号的数据包中,为服务器端实时了解客户端的运行状况提供数据支持。
在一个实施例中,所述步骤3,根据检测到的网络类型选择网络发送心跳信号给服务器端,包括:
根据检测到的网络类型选择心跳信号类型;所述心跳信号类型包括无线连接心跳信号和有线连接心跳信号;
每隔预设时间发送心跳信号。
该实施例中,预设时间可以根据实际情况选取,例如预设时间为20秒。为避免系统误判断,若主机连续三次未收到服务器端的反馈信息,则判断网络连接出现故障,重启监测设备。
实施例1:
如图1所示,本实施例提供一种双网心跳监测方法,包括如下步骤:
步骤1,初始化步骤:启动cpu内核;初始化内存、ucos和主机外设;读取flash信息;网络连接初始化;
步骤2,检测监测设备是否上线;若上线,则执行步骤3,若未上线,则返回步骤2重新检测;
步骤3,获取监测设备连接的网络类型;
步骤4,根据检测到的网络类型选择网络20s计时发送心跳信号给服务器端;若为有线连接,则选择有线连接方式,发送有线类型心跳,20s计时发送;啊打开是无线连接,则选择无线连接方式,发送无线类型心跳信号,20s计时发送;
步骤5,检测监测设备是否收到服务器发送的心跳回复信息;若收到心跳回复信息,则返回步骤1;若未收到,则继续检测是否累计三次未收到心跳回复信息,若是,则重启监测设备,若否,则返回步骤1。
服务器端接收客户端发送的心跳信号后,解析心跳信号,并显示解析的内容;解析心跳信号,包括:解析心跳信号中的数据包,得到电压信号、网络信号、防火墙状态信号和故障信号;所述网络信号包括网络类型信号和网络信号强度值;所述故障信号包括主机网络连接是否正常,网卡及网线是否正常;服务器端发送心跳信号回复的反馈信息。
服务器端接收到客户端发送的心跳信号后,可以先执行解析心跳信号并显示解析的内容的步骤,也可以先给客户端发送反馈信息,然后再执行解析心跳信号步骤。客户端收到服务器的的反馈信息,表明此时连接正常,继续在客户端执行检测步骤。
实施例2:
如图2所示,对应于上述一种双网心跳监测方法,本实施例提供一种双网心跳监测系统,包括:
第一检测模块1,用于检测监测设备是否上线;若上线,则获取监测设备连接的网络类型,若未上线,则重新检测;
获取模块2,用于获取监测设备连接的网络类型;
发送模块3,用于根据检测到的网络类型选择网络发送心跳信号给服务器端;
第二检测模块4,用于检测监测设备是否收到服务器发送的心跳回复信息;若收到心跳回复信息,则检测监测设备是否上线;若未收到,则继续检测是否累计三次未收到心跳回复信息,若是,则重启监测设备,若否,则检测监测设备是否上线。
在一个实施例中,如图3所示,还包括初始化模块5,包括:
启动子模块501,用于启动监测设备的cpu内核;
第一初始化子模块502,用于初始化内存、ucos和外设;
读取子模块503,用于读取flash信息;
第二初始化子模块504,用于网络连接初始化。
在一个实施例中,如图4所示,还包括第三检测模块6,包括:
第一检测子模块601,用于检测主机状态;包括电压状态、电源状态、防火墙状态及网络信号强度;
第二检测子模块602,用于检测外部设备是否故障;包括主机网络连接是否正常;若网络连接不正常,则检测网卡及网线是否正常工作。
在一个实施例中,如图5所示,发送模块3,包括:
选择子模块301,用于根据检测到的网络类型选择心跳信号类型;所述心跳信号类型包括无线连接心跳信号和有线连接心跳信号;
发送子模块302,用于每隔预设时间发送心跳信号。
主机cpu检测到设备状态,如供电情况、网线拔出、防火墙断线、网络类型、gprs的信号值等,同时在心跳里面加入主机的状态信息,将以上信息和一些必要的同步信息发送给服务器,服务器解析该数据并通过平台显示。同时在心跳基础上再次增加心跳的种类,使同一个设备心跳能够区分不同联网类型,从而通过心跳类型来区分不同的网络,比如gprs无线网络和有线internet网络,并在应用层处理网络连接。同时通过心跳类别来区分不同网络,实现了实时监控主机在线状态,保证了系统的可靠性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。