Пример #1
0
 /// <summary>
 /// 当数据包收到事件触发时,被调用
 /// </summary>
 /// <param name="e">包含事件的参数</param>
 protected virtual void OnPackageReceived(PackageReceivedEventArgs e)
 {
     if (PackageReceived != null)
     {
         PackageReceived(this, e);
     }
 }
Пример #2
0
        /// <summary>
        /// 当数据包收到事件触发时,被调用
        /// </summary>
        /// <param name="e">包含事件的参数</param>
        protected virtual void OnPackageReceived(PackageReceivedEventArgs e)
        {
            if (PackageReceived != null)
            {
                PackageReceived(this, e);
            }

            IpmEvents.OnUdpPackageReceived(_ipmClient, e);
        }
Пример #3
0
        /// <summary>
        /// 接收到UDP的消息包
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void udpClient_PackageReceived(object sender, PackageReceivedEventArgs e)
        {
            if (!e.IsHandled)
            {
                e.IsHandled = true;
                Message m = ResolveToMessage(e.Data, e.RemoteIP);
                if (m == null)
                {
                    return;
                }

                //检查最近收到的消息队列里面是否已经包含了这个消息包,如果是,则丢弃
                if (!receivedQueue.Contains(m.PackageNo))
                {
                    receivedQueue.Enqueue(m.PackageNo);
                    if (receivedQueue.Count > 100)
                    {
                        receivedQueue.Dequeue();
                    }

                    OnMessageReceived(new MessageEventArgs(m));
                }
            }
        }
Пример #4
0
		/// <summary>
		/// 当数据包收到事件触发时,被调用
		/// </summary>
		/// <param name="e">包含事件的参数</param>
		protected virtual void OnPackageReceived(PackageReceivedEventArgs e)
		{
			if (PackageReceived != null) PackageReceived(this, e);

			IpmEvents.OnUdpPackageReceived(_ipmClient, e);
		}
Пример #5
0
		/// <summary>
		/// 接收到UDP的消息包
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		void udpClient_PackageReceived(object sender, PackageReceivedEventArgs e)
		{
			if (!e.IsHandled)
			{
				e.IsHandled = true;
				Message m = ResolveToMessage(e.Data, e.RemoteIP);
				if (m == null) return;

				//检查最近收到的消息队列里面是否已经包含了这个消息包,如果是,则丢弃
				if (!receivedQueue.Contains(m.PackageNo))
				{
					receivedQueue.Enqueue(m.PackageNo);
					if (receivedQueue.Count > 100) receivedQueue.Dequeue();

					OnMessageReceived(new MessageEventArgs(m));
				}
			}
		}