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