根据internet NIC关于IP地址的规定,IP地址共分为A-E 共5类,其中A-C类目前应用的普通IP地址,E类地址保留为将来使用,D 类地址即为组播地址,其网络号为固定的1110(第0~3位),第4~31位定义了某一特殊的组播地址,范围为 224.0.0.0~239.255.255.255,共有228个约27亿个地址。
本文来自: (http://www.91linux.com/) 详细出处参考:http://www.91linux.com/html/article/network/20080616/12575_2.html
使用组播有一个很大的好处,消息往只管往里面丢,接受端开个线程,不断地接收就可以了。
发送端:
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse("224.0.0.1"), 3000);
EndPoint ep = (EndPoint)iep;
byte[] b = Encoding.ASCII.GetBytes("just a test!");
s.SendTo(b, ep);
s.Close();
接收端:
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 3000);
EndPoint ep=(EndPoint)iep;
s.Bind(iep);
s.SetSocketOption(SocketOptionLevel.IP,SocketOptionName.AddMembership,new MulticastOption(IPAddress.Parse("224.0.0.1")));
byte[]b=new byte[1024];
s.ReceiveFrom(b,ref ep);
string test;
test = System.Text.Encoding.ASCII.GetString(b);
Console.WriteLine(test);
s.Close();
Console.ReadKey();