目前我在服务端每隔5分钟给每个客户端发送一次存活包,每隔半小时统计一次客户端的反馈包,丢包超过50%的判定为断线,客户端中每收到一个存活包马上返回一个反馈包,每隔半小时统计存活包的数量,丢包超过30%则认为与服务器连接端开。现在就是如果客户端网络断开后,要隔半小时才提示用户连接断开,及时性非常差。请教下各位大侠,有没有好点的算法啊,各位做的网络通讯项目中是怎么处理的呢?最好是源码!谢谢!
解决方案 »
- 请教关于DELPHI编程问题附源码(急)
- 求个SQL语句,要求如下:如何查询数据库中一行记录中某几个字段的和,是每行都要求这几个字段的和
- dcom 客户端连接提示拒绝访问,中间件在windows 2003系统上,客户机与服务器相同用户与密码则可以连接,请问适何问题
- delphi如何做SQLserver2000数据库还原?
- 请问不能安装Ehlib60.dp和如何使用(调用)DBGridEh的筛选、查找功能?
- 下料问题算法代码(c++),请能把它改写成Delphi
- 求救!如何用fastreport实现这样的双列打印?
- 如何用QUERY(BDE)向EXCEL导入主从表?请指教(ON LINE)
- 新手必看,在线求助DELPHI
- 深度历险
- Win2000下怎样编写对硬件I/0操作的动态连接库?急!
- delphi新手的异常问题,企盼有java,c++等其它语言经验的高手解答。
你的问题我不懂,但是我可能帮你一起找资料。先谢谢了!
这和CMPP2.0协议中的长链接类似,是这样的:6.1 长连接
通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。
参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。
消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建
议为16,即接收方在应答前一次收到的消息最多不超过16条。