下面这段代码为什么执行到第二个方法的最后一句出现异常说“在执行此操作前必须调用Bind方法是怎么回事啊?public partial class frmApplicate : Form
    {
        public frmApplicate()
        {
            InitializeComponent();
        }        private void btnConfirm_Click(object sender, EventArgs e)
        {
            byte[] data = Encoding.GetEncoding("gb2312").GetBytes(txtSend.Text.ToString());
            IPAddress ip = IPAddress.Parse("127.0.0.1");
            IPEndPoint endPoint= new IPEndPoint(ip,1234);
            UdpClient send = new UdpClient();
            send.Send(data,data.Length,endPoint);
        }        private void btnCancel_Click(object sender, EventArgs e)
        {
            UdpClient server = new UdpClient();
            IPAddress ip = IPAddress.Parse("127.0.0.1");
            IPEndPoint sendPoint = new IPEndPoint(ip,1134);           
            server.Receive(ref sendPoint);
        }       
    }

解决方案 »

  1.   

    发送端与接收端的 端口号必须一致。
    AnyIPEndPoint = new IPEndPoint(IPAddress.Any, UdpPort); 
    byte[] receiveByte = udpClient.Receive(ref AnyIPEndPoint); 
      

  2.   

    当然还是一样的问题了,因为wuyq11给的答案是错误的,别被他的星星给骗了,有点识别能力的都知道,他的技术很差的,只会复制粘贴。具体代码如下,未经测试但原理上无误,即使有语法问题看提示自己应该能够处理    public partial class frmApplicate : Form 
        { 
            UdpClient server;
            public frmApplicate() 
            { 
                InitializeComponent();             //这里初始化用于监听的UDP服务,如果不初始化那么UDP包将会丢失            server = new UdpClient(1234); 
            }         private void btnConfirm_Click(object sender, EventArgs e) 
            { 
                byte[] data = Encoding.GetEncoding("gb2312").GetBytes(txtSend.Text.ToString()); 
                IPAddress ip = IPAddress.Parse("127.0.0.1"); 
                IPEndPoint endPoint= new IPEndPoint(ip,1234); 
                UdpClient send = new UdpClient(); 
                send.Send(data,data.Length,endPoint); 
            }         private void btnCancel_Click(object sender, EventArgs e) 
            { 
                //这里RemoteIpEndPoint只要初始化,什么值无所谓,仅仅是要分配内存地址(好像说得有点深奥了)。
                IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
                Byte[] receiveBytes = server.Receive(ref RemoteIpEndPoint); 
                string returnData = Encoding.GetEncoding("gb2312").GetString(receiveBytes);
                MessageBox.Show(returnData);
            } 
        }