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