如题!请高手给代码示例!

解决方案 »

  1.   

    使用异步方式..
    这个可能对你有帮助
    http://blog.csdn.net/zgke/archive/2009/01/20/3838844.aspx
      

  2.   

         public void BeginAcceptData()
            {
                udpclient.Client.BeginReceiveFrom(so.buffer, 0, so.buffer.Length, SocketFlags.None, ref ep, new AsyncCallback(ReceiveCallback), null);
            }
            public void ReceiveCallback(IAsyncResult iar)
            {
                try
                {
                    IPEndPoint ipe = (IPEndPoint)iep;
                    int receiveBytes = udpclient.Client.EndReceiveFrom(iar, ref ep);
                    if (receiveBytes > 0)
                    {
                        byte[] receiveByte = new byte[receiveBytes];
                        Array.Copy(so.buffer, 0, receiveByte, 0, receiveBytes);
                        UDPdata udata = new UDPdata();
                        udata.date = receiveByte;
                        udata.ep = ipe;
                        ReceiveData(this, new UDPNetEventArgs(udata));
                    }
                    udpclient.Client.BeginReceiveFrom(so.buffer, 0, so.buffer.Length, SocketFlags.None, ref ep, new AsyncCallback(ReceiveCallback), null);
                }
                catch
                {
                }
            }回调
      

  3.   


    public void BeginAcceptData() 
            { 
                udpclient.Client.BeginReceiveFrom(so.buffer, 0, so.buffer.Length, SocketFlags.None, ref ep, new AsyncCallback(ReceiveCallback), null); 
            } 
            public void ReceiveCallback(IAsyncResult iar) 
            { 
                try 
                { 
                    IPEndPoint ipe = (IPEndPoint)iep; 
                    int receiveBytes = udpclient.Client.EndReceiveFrom(iar, ref ep); 
                    if (receiveBytes > 0) 
                    { 
                        byte[] receiveByte = new byte[receiveBytes]; 
                        Array.Copy(so.buffer, 0, receiveByte, 0, receiveBytes); 
                        UDPdata udata = new UDPdata(); 
                        udata.date = receiveByte; 
                        udata.ep = ipe; 
                        ReceiveData(this, new UDPNetEventArgs(udata)); 
                    } 
                    udpclient.Client.BeginReceiveFrom(so.buffer, 0, so.buffer.Length, SocketFlags.None, ref ep, new AsyncCallback(ReceiveCallback), null); 
                } 
                catch 
                { 
                } 
            } 
      

  4.   

    UDP本来就是发出去就不负责的,根本不存在等的问题。
      

  5.   

    http://www.cnblogs.com/zhangpengshou/archive/2008/10/09/1307622.html
    比较简单的例子
      

  6.   

    看错LZ的意思不用循环,采用异步编程,实质上是采用了递归算法
    http://www.cnblogs.com/fxwdl/archive/2006/08/10/473467.html
    这个是TCP异步编程的例子