示例#1
0
        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();
            }
        }
示例#2
0
 public void SendHeartbeat()
 {
     if (udpClient != null)
     {
         byte[] bts = UnitsHepler.PacketMessage(clientId, MessageType.HEART);
         udpClient.Send(bts, bts.Length, ipBrokerServer);
     }
 }
示例#3
0
 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();
     }
 }