基本 UDP 客戶端

此程式碼示例建立 UDP 客戶端,然後通過網路將 Hello World 傳送給預期的收件人。偵聽器不必處於活動狀態,因為 UDP 是無連線的,並且無論如何都將廣播該訊息。一旦傳送訊息,客戶端就完成了工作。

byte[] data = Encoding.ASCII.GetBytes("Hello World");
string ipAddress = "192.168.1.141";
string sendPort = 55600;
try
{
     using (var client = new UdpClient())
     {
         IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ipAddress), sendPort);
         client.Connect(ep);
         client.Send(data, data.Length);
     }
}
catch (Exception ex)
{
     Console.WriteLine(ex.ToString());
}

下面是 UDP 偵聽器的示例,以補充上述客戶端。它將不斷地坐下來監聽給定埠上的流量,並簡單地將該資料寫入控制檯。此示例包含一個控制元件標誌’done’,該標誌未在內部設定,並依賴於某些內容來設定此標誌以允許結束監聽器和退出。

bool done = false;
int listenPort = 55600;
using(UdpClinet listener = new UdpClient(listenPort))
{
    IPEndPoint listenEndPoint = new IPEndPoint(IPAddress.Any, listenPort);
    while(!done)
    {
        byte[] receivedData = listener.Receive(ref listenPort);

        Console.WriteLine("Received broadcast message from client {0}", listenEndPoint.ToString());

        Console.WriteLine("Decoded data is:");
        Console.WriteLine(Encoding.ASCII.GetString(receivedData)); //should be "Hello World" sent from above client
    }
}