心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。心跳包主要也就是用于长连接的保活和断线处理。一般的应用下,判定时间在30-40秒比较不错。如果实在要求高,那就在6-9秒。...
分类:
系统相关 时间:
2015-01-16 14:48:47
阅读次数:
220
使用.NET 的 Socket 对象,Select 模型。自定义封包: 包长度+消息体客户端-服务端架构,有心跳包机制。客户端源代码:using System;using System.Collections.Generic;using System.Text;using System.Net;us...
分类:
Web程序 时间:
2015-01-11 19:06:12
阅读次数:
410
最近做C++ 服务器时,两个服务器之间通信时,一个是logserver , 一个是gameserver ,gameserver 定时向logserver 发心跳包(也就是 logserver 相当于server , gameserver 相当于client
),突然断开logserver ,就相当于服务器崩溃了,客户端不知道,仍旧照常发数据,但是相应的连接不存在,gameserver 就会报 B...
分类:
编程语言 时间:
2014-12-04 20:00:32
阅读次数:
174
最近刚刚接触 twisted 库,感觉twisted 库的设计模式和平时接触的socket 通信很大不同, 感觉有点不大适应,为了增加自己对twisted 的适应度, 同时也熟悉一下心跳包的机制。
特地写了一个 基于twisted 库的 TCP 服务器 心跳包 demo。
以供练习之用。 同时也和大家分享 python 编程心得
# -*- coding: utf-8 -*-...
分类:
其他好文 时间:
2014-11-26 19:08:37
阅读次数:
190
web socket 心跳包的实现方案05/30/2010现在网络环境错综复杂,socket心跳包是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现心跳包方案,是的,尽管我们只是做一个简单的聊天室,但我们让他稳定可靠一些一点也没有错。我的心跳包方案很是简单,原理就是间隔发送...
分类:
Web程序 时间:
2014-11-18 13:23:11
阅读次数:
246
TCP异常断开是指在突然断电,直接拔网线等等情况下,如果通信双方没有进行数据发送通信等处理的时候,无法获知连接已经断开的情况. 在通常的情况下,为了使得socket通信不受操作系统的限制,需要自己在应用层实现心跳包机制,来检查异常断开的情况,一般的方式就是服务器在一段时间没有收到客户端数据包时,定时...
分类:
其他好文 时间:
2014-11-13 00:23:43
阅读次数:
333
所谓的心跳包就是客户端定时放送简单的信息给服务器端,告诉它我还在而已。代码就是每 隔几分钟发送一个固定信息给服务器端,服务器端回复一个固定信息。如果服务器端几分钟后没有收到客户端信息则视客户端断开。比如有些通信软件长时间不适 用,要想知道它的状态是在线还是离线,就需要心跳包,定时发包收包。 心跳包之...
分类:
其他好文 时间:
2014-11-11 15:56:43
阅读次数:
267
NGP处理部分(主要就是这个RunOnce函数,客户单肯定是开个线程取调用这个RunOnce的)void NGP::RunOnce(){ m_spTimerFac->driveTimer();//客户端心跳包驱动 //先检查一下其他命令 if(m_queFunctions.size...
分类:
其他好文 时间:
2014-11-11 01:59:19
阅读次数:
295
//一个发包的流程第一个包就是客户端的心跳包,现在加了版本的包再来看看这个发包打包过程,过程坚持,但理解费劲void NGP::OnliveTimer()//客户端心跳,5s发一次{ SendCmd(c2s_on_live, NULL, 0);}bool NGP::SendCmd(int nC...
分类:
其他好文 时间:
2014-11-06 00:39:13
阅读次数:
134