UDPClient
在C#中,使用UdpClient进行UDP通信时,可以实现基本的发送和接收数据包的功能。
下列就为大家展示UDPClient的使用:
使用UdpClient类进行发送数据
// 建立udp客户端
UdpClient udpClient = new UdpClient(new IPEndPoint(IPAddress.Any,8080));
// 发送数据到192.168.102.12:8989
byte[] buffer = Encoding.UTF8.GetBytes("测试");
udpClient.Send(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse("192.168.102.12"), 8082));
接收数据
UdpClient udpClient = new UdpClient(new IPEndPoint(IPAddress.Any,8082));
Task.Run(() =>
{
IPEndPoint fromIp = new IPEndPoint(IPAddress.None, 0); // 记录该数据由哪个地址发送
while (true)
{
byte[] buffer = udpClient.Receive(ref fromIp); // 接收数据
richTextBox1.Invoke(new Action(() =>
{
richTextBox1.AppendText(Encoding.UTF8.GetString(buffer) + "\r\n");
}));
}
});
UdpClient实现组播
使用udpClient.JoinMulticastGroup();方法
// 创建UdpClient对象,并设置端口
UdpClient udpClient = new UdpClient(6000);
// 发送数据到224.0.1.1组的10000端口
byte[] buffer = Encoding.UTF8.GetBytes("测试");
udpClient.Send(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse("224.0.1.1"), 10000));
接收
// 创建UdpClient对象,并设置端口,要和发送者的组播端口一致
UdpClient udpClient = new UdpClient(10000);
// 加入组播,要和发送者发送的组播地址一致
udpClient.JoinMulticastGroup(IPAddress.Parse("224.0.1.1"));
// 启动线程接受消息即可
Task.Run(() =>
{
IPEndPoint fromIp = new IPEndPoint(IPAddress.None, 0);
while (true)
{
byte[] buffer = udpClient.Receive(ref fromIp);
richTextBox1.Invoke(new Action(() =>
{
richTextBox1.AppendText(buffer.ToString() + "\r\n");
}));
}
});