导航:首页 > IDC知识 > 心跳服务器

心跳服务器

发布时间:2020-08-25 21:14:50

1、服务器怎么判断心跳包?

用sendUrgentData这个来判断服务端是否异常关闭

想实现自动连接服务端,如果用
socket = new Socket("192.168.1.4",1821);
socket.connect();

只有每次去new创建这个sock对象,因为只有sock对象创建好了才由输入输出流

目前的实现方式就是,

1.在原有的基础上,再开多一个线程,专门负责发送心跳,

2.先睡眠500毫秒,

3.用socket.sendUrgentData(FF),给服务端,

4.如果服务端异常关闭的话,我就捕捉这个异常。。。

5.循环

心跳的意思就是每隔一段时间,客户端给服务器发一段消息:
1、客户端:服务器,我还活着,你死了没
2、服务器:客户端,我知道你还活着这个信息,我已经记录下来了,同时告诉你我也还活着

更多问题到问题求助专区http://bbs.hounwang.com/

2、心跳机制的概念介绍

网络中的接收和发送数据都是使用操作系统中的SOCKET进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。可是如何判断这个套接字是否还可以使用呢?这个就需要在系统中创建心跳机制。其实TCP中已经为我们实现了一个叫做心跳的机制。如果你设置了心跳,那TCP就会在一定的时间(比如你设置的是3秒钟)内发送你设置的次数的心跳(比如说2次),并且此信息不会影响你自己定义的协议。所谓“心跳”就是定时发送一个自定义的结构体(心跳包或心跳帧),让对方知道自己“在线”。 以确保链接的有效性。
所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已。代码就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开。比如有些通信软件长时间不使用,要想知道它的状态是在线还是离线就需要心跳包,定时发包收包。发包方:可以是客户也可以是服务端,看哪边实现方便合理。一般是客户端。服务器也可以定时轮询发心跳下去。心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。
在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项。系统默认是设置的是2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处理断线可能也不是那么好处理。一般,如果只是用于保活还是可以的。心跳包一般来说都是在逻辑层发送空的包来实现的。下一个定时器,在一定时间间隔下发送一个空包给客户端,然后客户端反馈一个同样的空包回来,服务器如果在一定时间内收不到客户端发送过来的反馈包,那就只有认定说掉线了。只需要send或者recv一下,如果结果为零,则为掉线。
但是,在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更要命的是,有的节点(防火墙)会自动把一定时间之内没有数据交互的连接给断掉。在这个时候,就需要我们的心跳包了,用于维持长连接,保活。在获知了断线之后,服务器逻辑可能需要做一些事情,比如断线后的数据清理呀,重新连接呀当然,这个自然是要由逻辑层根据需求去做了。总的来说,心跳包主要也就是用于长连接的保活和断线处理。一般的应用下,判定时间在30-40秒比较不错。如果实在要求高,那就在6-9秒。
网络上一个简单的示意图:

3、心跳线是什么

所谓的心跳线其实就是用来检查其它结点状态的专用结路.
在一般的windows服务器上这条线可以是一条RJ45跳线.
在IBM小机或是大机里这条线可能是专用的串口线也可能是SCSI线,这两种方式对于心跳信息的传输会更有保障.
如果是做windows双机热备,这条线不用理论上来说应该是可以的.但是在实际中来说,我们最好是把应用网段和心跳网段划分为两个不同的网络,这样更可靠一些.所以一般做双机的服务器是至少两块网卡,一块接应用,一块专门是心跳.

4、心跳服务器连接失败是什么原因

解决方法:
点击左下角开始按钮(或者按windows键)弹出开始菜单。
在搜索中输入"计算机管理",或者直接对着桌面的"计算机"点击邮件,在弹出的菜单里点击"管理"
系统搜索结果里找到"计算机管理",单击它打开窗口,在窗口的左边展开"服务与应用程序"的菜单并且点击"服务",
在右边的结果里找到"IP helper",(windows XP 是"IPv6 Helper Service")。 点击"IP helper",(windows XP 是"IPv6 Helper Service")打开上图窗口,依次把启动类型换成"禁用",把服务状态换为"停止",最后点确定按钮。
重启计算机以便设置生效

5、android 心跳包服务器怎么写

后台开启一个线程一直运行,每隔1分钟左右发送一个心跳报文给服务器,以确保时刻跟服务器链接。若超过3次服务器未对客户端发送的心跳报文做出回应则重新链接。 如果这么作的话,必须确保和服务器达成一定的应用层协议。

6、什么是TCP/IP通讯中的心跳包

心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。

心跳包在GPRS通信和CDMA通信的应用方面使用非常广泛。数据网关会定时清理没有数据的路由,心跳包通常设定在30-40秒之间。

所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已。代码就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开。

(6)心跳服务器扩展资料:

心跳包作用:

在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项。系统默认是设置的是2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处理断线可能也不是那么好处理。一般,如果只是用于保活还是可以的。

心跳包一般来说都是在逻辑层发送空的包来实现的。下一个定时器,在一定时间间隔下发送一个空包给客户端,然后客户端反馈一个同样的空包回来,服务器如果在一定时间内收不到客户端发送过来的反馈包,那就只有认定说掉线了。只需要send或者recv一下,如果结果为零,则为掉线。

但是,在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更要命的是,有的节点(防火墙)会自动把一定时间之内没有数据交互的连接给断掉。

7、什么是心跳交换机

2个交换机互为热备,如果有一台交换机出故障不能正常工作,系统将自动切换到另外一台交换机上.这样的交换机叫心跳交换机

8、讨论一个问题,为什么socket.io的心跳是从服务器主动发到客户端

在网络通信中,经常使用心跳方案,目的是通过心跳来验证对方是否在线。
具有实施时,根据具体要求,有几种选择:
1)客户端主动发送心跳信息到服务器;
2)服务器主动发送心跳信息到客户端;
3)客户端与服务器之间相互向对方发送信息信息。

产生心跳信息并发送给对方的目的是告诉对方“我还在线!”。
所以,服务器主动发送心跳,那意思是:服务器在线,仍在提供服务!

与心跳服务器相关的知识