C#实现UDP组播

来源:互联网 发布:百度春运大数据 编辑:程序博客网 时间:2024/06/05 18:00

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;using System.Threading;namespace Test{    class Program    {        static void Main(string[] args)        {            UdpClient client = new UdpClient(5566);            client.JoinMulticastGroup(IPAddress.Parse("234.5.6.7"));            IPEndPoint multicast = new IPEndPoint(IPAddress.Parse("234.5.6.7"), 7788);            byte[] buf = Encoding.Default.GetBytes("Hello from multicast");            Thread t = new Thread(new ThreadStart(RecvThread));            t.IsBackground = true;            t.Start();            while (true)            {                client.Send(buf, buf.Length, multicast);                Thread.Sleep(1000);            }        }        static void RecvThread()        {            UdpClient client = new UdpClient(7788);            client.JoinMulticastGroup(IPAddress.Parse("234.5.6.7"));            IPEndPoint multicast = new IPEndPoint(IPAddress.Parse("234.5.6.7"), 5566);            while (true)            {                byte[] buf = client.Receive(ref multicast);                string msg = Encoding.Default.GetString(buf);                Console.WriteLine(msg);            }        }    }}

组播地址为 224.0.0.0 ~ 239.255.255.255,其中 224.0.0.0~224.255.255.255 不建议在用户程序中使用,因为它们一般都有特殊用途。