byte[] b = new byte[10240];
try
{
String multiAddress = "225.0.38.123 ";//Datagrams.getMultiIPAddress( "192.168.2.106 ");
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9000);
s.Bind(ipep);
IPAddress ip = IPAddress.Parse(multiAddress);
s.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.AddMembership,
new MulticastOption(ip, IPAddress.Any));
s.ReceiveTimeout = 5000;
s.Receive(b);
Console.WriteLine("b.length: " + b[4] + " " + b[5] + " " + b[6] + " " + b[7]);
}
catch (Exception ex)
{
Console.WriteLine("receive multicast exception: " + ex.ToString());
}
这是我上国外网站找的例子!网址是:http://www.codeproject.com/cs/internet/multicast.asp
用UdpClient.JoinMulticastGroup,但是UdpClient没有延时设置,如果万一给组播地址发送组播数据包的机器挂了,我这个UdpClient不是一直在那里等待接受数据包吗?这样下来,程序就down在那里啦!
在C#中利用Keep-Alive处理Socket网络异常断开的方法 http://aabbc1122.blog.163.com/blog/static/5704325720118482253640/