基本 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
}
}