4

我正在建立一个带有 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 ?

谢谢你的帮助!!!

4

1 回答 1

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 提供了一个很棒的知识库,可以从中提取这些东西!

于 2013-01-02T17:11:44.043 回答