我正在建立一个拥有3台笔记本电脑的小型本地网络。我的目标是试验UpNP协议并让笔记本电脑使用UpNP相互发现。为此,他们需要能够收听彼此的通知。根据协议,这些通知在多播地址239.255.255.250:1900上发送。但是,我在设置笔记本电脑以侦听该地址时遇到问题。我刚开始使用1个电脑。我的电脑的IP地址是10.0.0.5。
但是,当我尝试设置UdpClient来监听239.255.255.250:1900时,我收到一条错误消息:“请求的地址在其上下文中无效”。
我试过用它来设置它:
IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);
UdpClient client = new UdpClient(endpoint);
client.BeginReceive(MessageReceived, null);
我也尝试过:
UdpClient client = new UdpClient(Port);
client.JoinMulticastGroup(IPAddress.Parse("239.255.255.250"));
client.BeginReceive(MessageReceived, null);
但我仍然得到同样的错误:“请求的地址在其上下文中无效”。
如何正确设置UdpClient以侦听多播地址239.255.255.250:1900?
感谢您的帮助!!!
答案 0 :(得分:3)
好的,经过多次搜索并将我的头撞在桌子上,我已经把这件事搞定了。我以为我昨天有它工作,但它只适用于Windows 7而不是XP ..
所以,在这里:
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, Port);
UdpClient client = new UdpClient();
client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
client.Client.Bind(localEndPoint);
client.JoinMulticastGroup(IPAddress);
client.MulticastLoopback = true;
Client.BeginReceive(MessageReceived, null);
我确实希望记录得更好,但我想这就是为什么我们得到了大笔钱。
感谢StackOverflow提供这样一个AWESOME知识库,从中提取这些东西!!