LumiSoft.Net.UDP 实践

 LumiSoft.Net是一个封装的网络协议库,在UDP Socket编程中,使用了多线程和封装消息队列,并通过事件委托来处理接受消息或错误的异常Exception

public class UDPService{

         LumiSoft.Net.UDP.UDP_Server udp = null;

 

         public UDPService(System.Net.IPEndPoint sIPEndPoint)
        {
           

            udp = new LumiSoft.Net.UDP.UDP_Server();
            udp.MTU = 2046;
            udp.ProcessMode = LumiSoft.Net.UDP.UDP_ProcessMode.Parallel;
            udp.Bindings = new System.Net.IPEndPoint[] {sIPEndPoint };
            udp.PacketReceived += new LumiSoft.Net.UDP.PacketReceivedHandler(udp_PacketReceived);
            udp.Error += new LumiSoft.Net.ErrorEventHandler(udp_Error);
            udp.Start();
            udp_IPAddress = sIPEndPoint.Address;
            udp_port = sIPEndPoint.Port;
        }

 

void PacketReceived(LumiSoft.Net.UDP.UDP_PacketEventArgs e){

//e.Data  收到的信息或数据在这里处理

//如果在此调用界面控件,请使用委托处理

 

}

 

 #region 处理UDP过程中的异常
        /// <summary>
        /// 处理UDP过程中的异常
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void udp_Error(object sender, LumiSoft.Net.Error_EventArgs e)
        {
            //e.Exception ;ErrorCode = 10054
            //    e.StackTrace
            if (e.Exception != null)
            {
                CMS_LAN_2_0.DebugTracker.Tracker.AddSystemException(e.Exception);
                if (e.Exception is System.Net.Sockets.SocketException)
                {
                    SocketException se = e.Exception as SocketException;
                    if (se.ErrorCode == 10054)
                    {
                        System.Windows.Forms.MessageBox.Show
                            ("Can't send command ,device closed or restarted.", "Connect failed",
                            System.Windows.Forms.MessageBoxButtons.OK,
                            System.Windows.Forms.MessageBoxIcon.Warning);
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show(e.Exception.ToString(), e.Text);
                    }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(e.Exception.ToString(), e.Text);
                }
            }
        }
        #endregion

}

-----------------------------------------------------------------------------------------------------------------------

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值