网络连接中的心跳
来源:互联网 发布:mac 打开finder快捷键 编辑:程序博客网 时间:2024/04/28 11:17
心跳:如果不主动关闭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 block
- System.out.println("心跳检测到客户端"+socket.getServer_Id()+"掉线");
- socket.destroy();
- break;
- } // 发送心跳包
- catch (Exception e) {
- // TODO Auto-generated catch block
- //e.printStackTrace();
- }
- }
- }
- }).start();
- }
0 0
- 网络连接中的心跳
- 网络通信中的心跳机制的实现
- 网络通信中的心跳机制的实现
- LINUX C网络编程中的心跳机制
- LINUX C网络编程中的心跳机制
- 网络通信中的心跳机制的实现!
- LINUX C网络编程中的心跳机制
- 网络 心跳
- 网络连接的保活机制(心跳机制)
- 网络连接的保活机制(心跳机制)(转)
- 维持网络连接,心跳是最愚蠢的办法
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- 人月神话读书笔记
- iOS 各种开源接口API
- ceph存储 ceph集群loop使用示例
- WordXML格式解析
- java版本_二叉树(前序遍历,中序遍历,后续遍历)
- 网络连接中的心跳
- LR:接口性能测试中的应用服务器监控数据指标分析(Linx内存管理 和 性能学习)
- 一.关于Vmware的网络连接
- 常见Java面试题 – 第四部分:迭代(iteration)和递归(recursion)
- Sqoop的安装与测试
- 部署与管理ZooKeeper(转)
- Could not find a method XXX(View) in the activity class
- 网络基本功系列:细说路由(下)
- 送礼的几大原则