正在通过多播向我发送xml源,但我不知道多播组地址。我可以改用localhost吗?也就是说,
Socket socket =
new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint ip = new IPEndPoint(IPAddress.Any,8888);
socket.Bind(ip);
socket.SetSocketOption
(SocketOptionLevel.IP,
SocketOptionName.AddMembership,
new MulticastOption(IPAddress.Parse("127.0.0.1"),IPAddress.Any));
byte[] data = new byte[1024];
int length = socket.Receive(data);..。
发布于 2008-11-14 22:19:56
不是的。
您(您的客户端)需要加入多播组,您将通过AddMembership连接到多播组IP,然后连接。
否则,您将无法接收多播源。不过,您的代码可以与UDP广播一起工作。
发布于 2008-11-16 00:32:25
严格地说,如果您为非组播地址上的组播数据打开侦听端口,那么您实际上是在侦听标准UDP。组播和UDP之间的区别在于IP地址。这是一个特殊的IPV4地址范围,不绑定到固定主机。相反,它是由网络边缘的路由器以伪发布-订阅方式识别的。在您的子网内,组播在所有目的和目的上都与广播相同。
如果写入多播地址,则该子网中的所有主机都可以使用该地址。如果您的路由器支持组播,则它会将组播提供给上游宣布对其感兴趣的任何客户端。子网的发布/订阅的THink。
所有这些都表明,如果您正在寻找与多播等效的本地主机,那么您可能需要改为查看广播。
发布于 2008-11-14 22:21:03
与单播不同,您需要知道组播的组地址。
https://stackoverflow.com/questions/291605
复制相似问题