TCP之心跳包实现思路
来源:互联网 发布:淘宝的钻石展位是什么 编辑:程序博客网 时间:2024/05/18 01:10
心跳包机制
说起网络应用编程,想到最多的就是聊天类的软件。当然,在这类软件中,一般都会有一个用户掉线检测功能。今天我们就通过使用自定义的HeartBeat方式来检测用户的掉线情况。
心跳包实现思路
我们采用的思路是:客户端连接上服务端以后,服务端维护一个在线用户字典,客户端每隔一段时间,向服务器发送一个心跳包,服务器接收到包以后,字典数据的值都会更新为0;一旦服务端超过规定时间没有接收到客户端发来的包,字典数据将会递增加一,当字典数据的值累计大于等于三,则视为掉线。
代码逻辑
客户端每隔一段时间,发送一个心跳包:
View Code
在服务端,会开启一个定时器,定时将userOnLineCounter中的值递增加一。如果此时收到客户端的心跳包,则将userOnLineCounter中的值重置。
View Code
收到客户端心跳包,自动重置计数器。
View Code
效果图
(图1:三个客户端连接一个服务器)
(图2:用户“上善若水”掉线)
(图3:用户“古道热肠”掉线)
程序暂时还未完全完成,有需要的可以参考下。当然也期待大家的各种思路。
代码很丑,期望大家指点下重构的方法。
//转载自网络:http://www.cnblogs.com/scy251147/p/3333957.html http://blog.csdn.net/xuyuefei1988/article/details/8279812 0 0
- TCP之心跳包实现思路
- TCP之心跳包实现思路
- TCP之心跳包实现思路
- 网络编程难点解析(二)—— TCP之心跳包实现思路
- TCP之心跳包
- TCP/IP-心跳包
- TCP/IP-心跳包
- TCP 心跳包
- 使用“带外数据”实现TCP心跳包
- socket Tcp编程笔记--心跳包的实现逻辑
- 使用“带外数据”实现TCP心跳包
- 心跳包实现
- TCP keepAlive详解(TCP心跳包)
- ioS之Socket心跳包机制与实现
- ios之Socket心跳包机制与实现
- ioS之Socket心跳包机制与实现
- 使用TCP keepalive还是HeartBeat心跳包?
- tcp连接探测Keepalive和心跳包
- service注入DAO组件 与 Action注入service区别
- JAVA中转义字符
- 使用call_user_func_array()来回调执行函数与直接使用函数的区别是什么? 周梦康周梦康 839 2014年04月15日 提问 · 2014年04月15日 更新 关注 0 关注 收藏
- [ 收集] 条件注释判断浏览器版本
- C/C++编程细节(二)——堆栈、数组、指针
- TCP之心跳包实现思路
- 欢迎使用CSDN-markdown编辑器
- android做新闻客户端用到得第三包
- scala实现设计模式之命令模式
- 用自定义缓存区的方式实现文件的移动
- 【坑】javascript中匿名函数表达式的估值操作
- 【LeetCode】之Linked List Cycle
- 用两个栈实现队列
- 动态增加文本框