/// <summary> /// 忆林的 /// </summary> /// <param name="socket"></param> /// <param name="info"></param> /// <param name="bys"></param> private void YiLinMethod(Socket pox, MacIPVersionInfo info, byte[] bys) { var mac = info.mac; if (!string.IsNullOrEmpty(mac)) { Program.upgradeDevice(mac, pox); } //LogWriteLock.EnterWriteLock(); //var st = new SocketTime(); //st.socket = pox; //st.time = DateTime.Now; //socketMap[mac] = st; //LogWriteLock.ExitWriteLock(); var ipEnd = (IPEndPoint)pox.RemoteEndPoint; var heartBeatKey = "HeartBeat:" + ipEnd.Address.ToString() + "" + ipEnd.Port; var key = "Socket.Tcp.SetTime." + mac; #region 设置时间 if (!RedisHelper <string> .IsKeyExist(key)) { Task.Factory.StartNew(() => { try { ///60*60*24 RedisHelper <string> .StoreOneKey(key, "1", 86400); var set_time_str = "55ff00010091010110a1000a0461" + StrHelper.BackTime(); var set_time_bytes = CRC16.CRC_XModem(set_time_str); pox.Send(set_time_bytes); Thread.Sleep(50); } catch (SocketException se) { Func <bool> func1 = () => true; var msgx = "TCP:670:" + se.ErrorCode + " " + se.Message; LogHelper.LogFilter(func1, msgx); } }); } #endregion #region 设置心跳包 if (RedisHelper <string> .IsKeyExist(heartBeatKey) == false) { var task = new TaskFactory(); task.StartNew(() => { var orgText = StrHelper.GetHexStr(bys); if (!string.IsNullOrEmpty(mac) && (mac.Equals("98d8634a034e") || mac.Equals("98d8634a0344") || mac.Equals("98d8638c7fa2"))) { LogHelper.LogFilter(true, $"心跳包=>{mac},{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); } DALMacIPInfo.MacIPInfo_Add(new MacIPInfo() { mac = mac, IP = ipEnd.Address.ToString(), localip = "", ssid = "", OrgText = orgText }); }); ///缓存2分钟 RedisHelper <string> .StoreOneKey(heartBeatKey, "1", heartbeatTime); } else { } #endregion }