private void DoRecieveCallBack(IAsyncResult ar) { try { IPEndPoint point = new IPEndPoint(IPAddress.Any, 0); byte[] bts = udpClient.EndReceive(ar, ref point); if (MessageRecieved == null) { return; } MessageType type; string str = UnitsHepler.ParseMessage(bts, out type); if (MessageRecieved != null) { MessageRecieved.BeginInvoke(type, str, null, null); } } catch (Exception ex) { // log.Error("读取异常:", ex.Message); } finally { BeginRecieve(); } }
public void SendHeartbeat() { if (udpClient != null) { byte[] bts = UnitsHepler.PacketMessage(clientId, MessageType.HEART); udpClient.Send(bts, bts.Length, ipBrokerServer); } }
public void Start() { if (udpClient == null) { udpClient = new UdpClient(UnitsHepler.GetNextAvailableNetPort(10000)); udpClient.Client.ReceiveTimeout = 4000; timerSend = new System.Timers.Timer(10000); timerSend.Elapsed += timerSend_Elapsed; timerSend.Start(); try { SendHeartbeat(); } catch (Exception ex) { log.Error("发送心跳异常", ex); } BeginRecieve(); } }