java是可以实现心跳的程序的。
心跳顾名思义就是每隔一段时间执行,或者轮询查询状态,可以使用timer来实现,代码如下:
定时器可以实现//1000毫秒,固定时间,卜晌乎每隔1秒钟执行一次actionPerformed方法
javax.swing.Timer clock = new javax.swing.Timer(1000,new ActionListener(){
public void actionPerformed(ActionEvent e) {
//执行心跳方法
谨猜 /**...*/
//调用其他方法
/**...*/
}
})
clock.start()
可以独立用个线型悉程管理,也可以直接写在主线程中
心跳是用于判断是否掉线的. 只要连着的纯兆时候就会持续每隔一小会发一个心跳包,服务器如果多久没收到就判断你已经掉线了. 之所以需要心跳包而不直接判断socket的联通状态,是因为在网络上有大量的连接缓存设备(比如电信局的交换袭逗机,比如一些硬件防火墙),这些设备会保存连接一段时间(几秒到十几分钟都有)举个例子 A客户端连接着B服务器 实际上是 A->中间的网络设备C->B如果A掉线了,实际上可能是A到C断了,也可能是C到B断了, 如果是A到C断了, 实际上B是做禅租无法知道的,因为对B来说A的连接(就是C)还连着. 心跳机制就解决了这个问题欢迎分享,转载请注明来源:内存溢出
评论列表(0条)