private void UdprecvEventHandler(object sender,msgReceiptEventArg e)
 {
     this.Invoke(new ThreadUIHandle(ThreadUIHandleMethod),e);
 }
        //开始监听
        private void recvProc()
        {
            while(con)
            {
                state = "open";
                try
                {
                    //Receive方法将阻塞进行,直到得到请求信息
                    //参数ref C_Point将得到请求信息的主机信息
                    byte[] msg = sv.Receive(ref C_Point);
                    //事件参数
                    msgReceiptEventArg eRecv = new msgReceiptEventArg();
                    eRecv.data = new byte[msg.Length];
                    eRecv.data = msg;
                    //e.data = System.Text.Encoding.UTF8.GetString(msg);
                    eRecv.requestIP = C_Point.Address.ToString();
                    eRecv.requestPort = C_Point.Port;
                    eRecv.ErrorHappened = false;
                    //如果有事件绑定,就触发事件
                    if (msgReceiptEvent != null)
                    {
                        msgReceiptEvent(this, eRecv);
                    }
                }
                catch(Exception e)
                {
                    CloseListen();
                    //msgReceiptEventArg e1 = new msgReceiptEventArg();
                    //e1.ErrorHappened = true;
                    //e1.errorString = e.Message;
                    //if (msgReceiptEvent != null)
                    //{
                    //    msgReceiptEvent(this, e1);
                    //}

                }

            }
        }
        private void ThreadUIHandleMethod(msgReceiptEventArg eventData)
        {
            if (eventData.ErrorHappened)
            {
                this.labelUdpstatus.Text = "通讯服务发生错误,已断开";
            }
            else
            {
                udpPackage package = new udpPackage();
                if(package.Pack(eventData.data))
                {
                    if(package.addr == 1)
                    {
                        try
                        {
                            _transMachine1.RecvCmd(package, eventData.requestIP, eventData.requestPort);
                        }
                        catch (System.Exception e)
                        {
                            Console.WriteLine("_transMachine1.RecvCmd:" + e.Message);
                        }

                    }
                    else if(package.addr == 2)
                    {
                        _transMachine2.RecvCmd(package, eventData.requestIP, eventData.requestPort);
                    }
                }

            }
        }