首先,自定義一個類,這了類以後會用到。編程
class UdpState
{
public UdpClient u;
public IPEndPoint e;
}異步
如下是主要代碼,雖然是用udpclient來編程,可是這是編寫的Server端代碼,主要用到了異步接收方發,具體的方法講解能夠在MSDN上查看:this
public static void ReceiveCallback(IAsyncResult ar)
{
UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).u;
IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e;spa
Byte[] receiveBytes = u.EndReceive(ar, ref e);
string receiveString = Encoding.ASCII.GetString(receiveBytes);string
Console.WriteLine("Received: {0}", receiveString);
messageReceived = true;
}it
public static void ReceiveMessages()
{
int listenPort=11000;
// Receive a message and write it to the console.
IPEndPoint e = new IPEndPoint(IPAddress.Any, listenPort);
UdpClient u = new UdpClient(e);console
UdpState s = new UdpState();//此處用到了自定義的類
s.e = e;
s.u = u;class
Console.WriteLine("listening for messages");
u.BeginReceive(new AsyncCallback(ReceiveCallback), s);cli
// Do some work while we wait for a message. For this example,
// we'll just sleep
while (!messageReceived)
{
Thread.Sleep(10000);
}
}coding