服务器如何判断客户端非正常掉线-心跳连接
来源:互联网 发布:亚视本港台网络电视 编辑:程序博客网 时间:2024/04/28 10:36
心跳:如果不主动关闭socket的话,系统不会自动关闭的,除非当前进程挂掉了,操作系统把占用的socket回收了才会关闭。为什么需要心跳连接主要是判断当前连接是否是有效的、可被使用的。在实际应用中假设一段时间没有数据传输时候理论上说应该连接是没有问题的,但是网络复杂,中途出现问题也是常见的,网线被掐断了、对方进程挂掉了、频繁丢包等,这时候TCP连接是不可使用的,但是对于应用层并不知道,如果需知道网络情况则要很复杂的超时进行了解,TCP从底层就实现了这样的功能。心跳机制是TCP在一段时间间隔后发送确定连接端是否还存在,如果存在的话就会回传一个包确定网络有效,如果心跳包有问题,则通知上层应用当前网络有问题了。
实现:
public void heartCheck(final ClientSocket socket){//心跳连接(检查断链) 服务器断线重连new Thread(new Runnable() {public void run() {while (true) { if(socket.isConnectStatus()==false)break; try { socket.sendHeartCheck();//socket.sendUrgentData(0xFF); //System.out.println("目前是正常的!"); Thread.sleep(10 * 1000); } catch (IOException e) {// TODO Auto-generated catch blockSystem.out.println("心跳检测到客户端"+socket.getServer_Id()+"掉线");socket.destroy();break;} // 发送心跳包 catch (Exception e) {// TODO Auto-generated catch block//e.printStackTrace();} } }}).start();}
- 服务器如何判断客户端非正常掉线-心跳连接
- 服务器如何判断客户端非正常掉线-心跳连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- WCF心跳判断服务端及客户端是否掉线并实现重连接
- socket的客户端判断连接是否正常
- 如何查看服务器的连接是否正常,连接正常运行
- Cocos客户端如何连接服务器
- JAVA Socket服务器 判断客户端连接断开
- Socket服务器 判断客户端连接断开
- 连接有效性判断之心跳
- 丛林战争项目四之客户端连接正常和非正常关闭
- 如何判断本客户端 SOCKET 与服务器 之间的连接状态.
- c#通过socket判断服务器连接是否正常
- 自定义形状界面MFC
- 数字信号处理
- 学习Android的第一天
- 我是一只花栗鼠02:术语搜集
- 我是一只花栗鼠03:碎片搜集
- 服务器如何判断客户端非正常掉线-心跳连接
- 天才de睡眠排序算法
- python jpg转pdf的方法
- 1.19.2013 #Practical Programming #2
- Hello World
- Microsoft SQL Server Migration Assistant for MySQL v5.2
- [转]12.04/12.10 Nvidia双显卡Bumblebee攻略
- Spring中使用proxool连接池的配置方式与出现Attempt to refer to a unregistered pool by its alias 'ums'异常的解决办法
- .vimrc配置: