using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; namespace Asr.App.O2o.Client.UdpMulticast { public class UdpMulticast { private static IPAddress mcastAddress; private static int mcastPort; private static Socket mcastSocket; private static MulticastOption mcastOption; public static void Start() { //组播地址和端口 mcastAddress = IPAddress.Parse("224.0.0.1"); mcastPort = 6005; //组播套接字,绑定本地地址(组播端口) mcastSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint localEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), mcastPort); mcastSocket.Bind(localEP); //加入组播 mcastOption = new MulticastOption(mcastAddress, IPAddress.Parse("127.0.0.1")); mcastSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, mcastOption); } public static void Stop() { mcastSocket.Close(); mcastSocket.Dispose(); } public static void sendMsg(int msgType, int seqInt, string jsonValue) { byte[] typebytes = BitConverter.GetBytes(msgType); byte[] seqbytes = BitConverter.GetBytes(seqInt); byte[] msgbytes = Encoding.UTF8.GetBytes(jsonValue); byte[] lenbytes = BitConverter.GetBytes(msgbytes.Length); byte[] bytes = typebytes.Concat(seqbytes).Concat(lenbytes).Concat(msgbytes).ToArray(); mcastSocket.SendTo(bytes, new IPEndPoint(mcastAddress, mcastPort)); } } }
来源:https://www.cnblogs.com/liwb1987/p/4606661.html