我在网上查到的是这样写的,但是发现收不到数据,但是登陆交换机发现组播路由表已经建立起来了,接收的有,但是转发是0,
这段代码哪里有问题。
文章地址:
http://blog.csdn.net/guoweifeng1987/article/details/11715903
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 5980);
s.Bind(ipep);
byte[] membershipAddresses = new byte[12]; // 3 IPs * 4 bytes (IPv4)
Buffer.BlockCopy(multicastIp.GetAddressBytes(), 0, membershipAddresses, 0, 4); //组播地址
Buffer.BlockCopy(sourceIp.GetAddressBytes(), 0, membershipAddresses, 4, 4); //组播源地址
Buffer.BlockCopy(localIp.GetAddressBytes(), 0, membershipAddresses, 8, 4); //本地接收地址
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddSourceMembership, membershipAddresses);