windows密匙是什么:服务器实现心跳机制的两种策略
来源:百度文库 编辑:中财网 时间:2024/04/29 01:46:17
(2011-02-18 17:08)标签: - 分类: 算法程序
大部分CS的应用需要心跳机制。心跳机制一般在Server和Client都要实现,两者实现原理基本一样。Client不关心性能,怎么做都行。
如果应用是基于TCP的,可以简单地通过SO_KEEPALIVE实现心跳。TCP在设置的KeepAlive定时器到达时向对端发一个检测TCP segment,如果没收到ACK或RST,尝试几次后,就认为对端已经不存在,最后通知应用程序。这里有个缺点是,Server主动发出检测包,对性能有点影响。
应用自己实现
Client启动一个定时器,不断发心跳;
Server收到心跳后,给个回应;
Server启动一个定时器,判断Client是否存在,判断方法这里列两种:时间差和简单标志。
1. 时间差策略
收到一个心跳后,记录当前时间(记为recvedTime)。
判断定时器时间到达,计算多久没收到心跳的时间(T)=当前时间 - recvedTime(上面记录的时间)。如果T大于某个设定值,就可以认为Client超时了。
2. 简单标志
收到一个心跳后,设置连接标志为true;
判断定时器时间到达,查看所有的标志,false的,认为对端超时了;true的将其设成false。
上面这种方法比上面简单一些,但检测某个Client是否离线的误差有点大。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/herm_lib/archive/2010/12/04/6054443.aspx
大部分CS的应用需要心跳机制。心跳机制一般在Server和Client都要实现,两者实现原理基本一样。Client不关心性能,怎么做都行。
如果应用是基于TCP的,可以简单地通过SO_KEEPALIVE实现心跳。TCP在设置的KeepAlive定时器到达时向对端发一个检测TCP segment,如果没收到ACK或RST,尝试几次后,就认为对端已经不存在,最后通知应用程序。这里有个缺点是,Server主动发出检测包,对性能有点影响。
应用自己实现
Client启动一个定时器,不断发心跳;
Server收到心跳后,给个回应;
Server启动一个定时器,判断Client是否存在,判断方法这里列两种:时间差和简单标志。
1. 时间差策略
收到一个心跳后,记录当前时间(记为recvedTime)。
判断定时器时间到达,计算多久没收到心跳的时间(T)=当前时间 - recvedTime(上面记录的时间)。如果T大于某个设定值,就可以认为Client超时了。
2. 简单标志
收到一个心跳后,设置连接标志为true;
判断定时器时间到达,查看所有的标志,false的,认为对端超时了;true的将其设成false。
上面这种方法比上面简单一些,但检测某个Client是否离线的误差有点大。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/herm_lib/archive/2010/12/04/6054443.aspx
数据仓库的实现策略
试写出利用信号量机制实现两任务共享单缓冲区的同步算法。
发展中国家经济发展的两种策略
发展中国家经济发展的两种策略是什么?
发展中国家经济发展的两种策略是什么
用sql2000 怎么实现两台服务器的数据同步!!!!!
电子商务WWW客户机/服务器(两层,三层)通信机制
qq多点音频的实现机制
财政政策内在稳定器的实现机制
策略和机制的区别和联系是什么
农业银行运营机制的内容 行业分析以及营销策略
两次购买同一种商品的两种不同策略:
怎样实现组策略的功能
基于进程通信(IPC)机制的聊天程序的设计,能够实现在同一台服务器的多用户之间的聊天。
xml 实现机制
审计子系统的功能和实现机制有哪些?谢谢~~
我设置局域网,如何实现两台计算机的共连?服务器如何设置?谢谢
电子商务www客户机/服务器(两层、三层)通信机制是什么?
拍卖中如何根据不同的拍卖机制调整出价策略?
安全生产法》的两结合监管机制是什么?
怎么用ASP实现两台服务器之间数据同步
两台数据库服务器之间如何实现数据容错?
两台数据库服务器之间如何实现数据容错?
两台数据库服务器之间如何实现数据容错?