public void Init(Socket socket) { this.socket = socket; //已经启用 isUse = true; //该类作为对象池对象循环使用,每次初始化一些字段需要重新设置 bufferCount = 0; //设置心跳时间 lastTickTime = ServTime.GetTimeStamp(); }
//处理心跳 public void HeartBeat() { Console.WriteLine("主定时器开始运行"); //当前时间戳 long timeNow = ServTime.GetTimeStamp(); for (int i = 0; i < conns.Length; i++) { if (conns[i].isUse) { //超过心跳时间 if (timeNow - conns[i].lastTickTime > heartBeatTime) { Console.WriteLine("心跳引起连接断开" + conns[i].GetAddress()); lock (conns[i]) { conns[i].Close(); } } } } }