/// <summary> /// 当数据包收到事件触发时,被调用 /// </summary> /// <param name="e">包含事件的参数</param> protected virtual void OnPackageReceived(PackageReceivedEventArgs e) { if (PackageReceived != null) { PackageReceived(this, e); } }
/// <summary> /// 当数据包收到事件触发时,被调用 /// </summary> /// <param name="e">包含事件的参数</param> protected virtual void OnPackageReceived(PackageReceivedEventArgs e) { if (PackageReceived != null) { PackageReceived(this, e); } IpmEvents.OnUdpPackageReceived(_ipmClient, e); }
/// <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)); } } }
/// <summary> /// 当数据包收到事件触发时,被调用 /// </summary> /// <param name="e">包含事件的参数</param> protected virtual void OnPackageReceived(PackageReceivedEventArgs e) { if (PackageReceived != null) PackageReceived(this, e); IpmEvents.OnUdpPackageReceived(_ipmClient, e); }
/// <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)); } } }