using HDLMonitorService.Helper; using HDLMonitorService.UDP; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace HDLMonitorService.ServiceMonitor { public class ServerMonitor { /// /// 发送时间 /// public static DateTime sendTime; /// /// 发送了多少次 /// public static int ServerSendCount; /// /// 网络延迟次数 /// public static int InternetDeleyCount; /// /// 监控数据转发服务 /// public static void monitorServer() { new Thread(new ThreadStart(() => { while (true) { try { var sendBytes = new byte[29]; var groupNameBytes = Encoding.Default.GetBytes("HDLXX"); Array.Copy(groupNameBytes, 0, sendBytes, 9, groupNameBytes.Length); sendBytes = Packet.SendBytes(sendBytes, 0x3011, 42, 0); UDPServer.AsyncBeginSend(new Packet { Bytes = sendBytes, RemoteEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ConfigurationManager.AppSettings["ServerIp"]), 9999) }); sendTime = DateTime.Now; ServerSendCount++; //超过6次有问题 if (ServerSendCount == 6) { AlarmHp.ServiceAlarm("Server", "服务已经6次没有响应,请尽快检查!", ConfigurationManager.AppSettings["ServerIp"], "国内-旧服务器设备状态服务"); } } catch (Exception ex) { LogHp.WriteLog("UDP服务异常", Newtonsoft.Json.JsonConvert.SerializeObject(ex)); } Thread.Sleep(1000 * 10); } })) { IsBackground = true }.Start(); } } }