UDP协议——使用UDPClient实现通信

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");
            }));
        }
    });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值