首页 > 编程语言 >C#实现UDP组播

C#实现UDP组播

时间:2024-07-17 18:23:21浏览次数:6  
标签:UDP 组播 C# IPAddress IPEndPoint client new buf public

接收端:

public class UdpDemo
{
    public void Run()
    {
        Thread t = new Thread(new ThreadStart(RecvThread));
        t.IsBackground = true;
        t.Start();
        while (true)
        {
            Thread.Sleep(1000);
        }
    }

    public void RecvThread()
    {
        UdpClient client = new UdpClient(39841);
        client.JoinMulticastGroup(IPAddress.Parse("227.1.1.21"));
        IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);
        while (true)
        {
            byte[] buf = client.Receive(ref remote);
            if (buf.Length == 0) continue;
            string msg = Encoding.UTF8.GetString(buf);
            Console.WriteLine("接收到消息--------------" + msg);

        }
    }
}

 

发送端:

    public class UdpDemo
    {
        public void Run()
        {
            UdpClient client = new UdpClient(39842);
            client.JoinMulticastGroup(IPAddress.Parse("227.1.1.21"));
            IPEndPoint multicast = new IPEndPoint(IPAddress.Parse("227.1.1.21"), 39841);
            byte[] buf = Encoding.Default.GetBytes("Hello from multicast");
            while (true)
            {
                Console.WriteLine($"发送中");
                client.Send(buf, buf.Length, multicast);
                Thread.Sleep(1000);
            }
        }
  }

效果:

 

标签:UDP,组播,C#,IPAddress,IPEndPoint,client,new,buf,public
From: https://www.cnblogs.com/dayang12525/p/18308030

相关文章

  • oracle stream pool size
    See:STREAMS_POOL_SIZESTREAMS_POOL_SIZE参数详解STREAMS_POOL_SIZE初始化参数用于帮助确定Streams池的大小。它是一个大整数类型参数,其语法为STREAMS_POOL_SIZE=integer[K|M|G],默认值为0。该参数可通过ALTERSYSTEM修改,但在可插拔数据库(PDB)中不可修改。......
  • MongoDB 显示数量方式 , count结果与实际不符合
    直接count结果db.cdc_o2k_kafka_mongoDB.count()//8798768官方解释不准确的原因:a.操作的是分片的集合(前提);b.shard分片正在做块迁移,导致有重复数据出现c.存在孤立文档(因为不正常关机、块迁移失败等原因导致)db.cdc_o2k_kafka_mongoDB.aggregate([{......
  • 常用的 JavaScript 数组处理方法
    1.map方法用于创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数后返回的结果。letitems=[{id:1,name:'item1'},{id:2,name:'item2'},{id:3,name:'item3'}];letitemNames=items.map(item=>item.name);console.log(itemNames);......
  • SciTech-EECS-电设计- PCB设计-电路设计与仿真系统 + SPICE 仿真描述与模型
    电路设计与仿真系统用户可以通过"仿真系统"轻松的观察“电路行为”的“即时状态”。是因为“电子电路设计与仿真系统”集成了原理图编辑器,仿真引擎,波形显示等功能,"仿真系统"通常也会涵盖“扩展模型”以及电子“元器件库”:"扩展模型"主要包括IC(集成电路)专用的"晶......
  • 在 PowerShell 中Get-WmiObject Win32_PhysicalMemory,SMBIOSMemoryType 是一种用于描
    在PowerShell中Get-WmiObjectWin32_PhysicalMemory,SMBIOSMemoryType是一种用于描述系统中物理内存类型的属性。数字26表示特定的内存类型,具体为DDR4内存。每种内存类型在SMBIOS(SystemManagementBIOS)规范中都有一个对应的数字码,用来标识不同类型的内存。以下是一些常见......
  • 如何处理Yuzu模拟器找不到MSVCP140文件?Yuzu模拟器MSVCP140丢失处理办法
    在追逐跨平台游戏体验的潮流里,Yuzu模拟器依靠其卓越的性能和良好的兼容性,变成了众多玩家在PC端尽情享受任天堂Switch游戏的首要选择工具。不过,和大多数软件应用相同,Yuzu模拟器在初次进行安装或者运行的时候,也有可能碰到一些技术方面的难题。其中,“MSVCP140.dll文件缺失”就是让......
  • C语言中常见库函数(1)——字符函数和字符串函数
    文章目录前言1.字符分类函数2.字符转换函数3.strlen的使用和模拟实现4.strcpy的使用和模拟实现5.strcat的使用和模拟实现6.strncmp的使用和模拟实现7.strncpy函数的使用8.strncat函数的使用9.strncmp函数的使用10.strstr的使用和模拟实现11.strtok函数的使用12.strerror......
  • Clarke-Wright节约算法详解与Python代码示例
    Clarke-Wright节约算法详解与Python代码示例一、算法详解Clarke-Wright节约算法(简称C-W算法),也称为节约里程法或节约算法,是由Clarke和Wright于1964年提出的一种启发式算法。该算法主要用于解决车辆路径问题(VehicleRoutingProblem,VRP),特别是在运输车辆数目不确定的情况下......
  • css常用属性
    一、边框的属性border-width:简写属性为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。border-color:设置边框颜色。border-style:设置边框类型。属性值:  none    定义无边框。  hidden   与"none"相同。不过应用于表时除外,对于表,hidden用......
  • LeetCode-计数质数
    计数质数给定整数n,返回所有小于非负整数n的质数的数量。示例1:输入:n=10输出:4解释:小于10的质数一共有4个,它们是2,3,5,7。示例2:输入:n=0输出:0示例3:输入:n=1输出:0......