我正在用 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?
感谢您的帮助!!!
好吧,经过大量搜索并用我的头撞到我的桌子上,我已经让这个东西工作了。我以为我昨天让它工作了,但它只适用于 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 提供了如此棒的知识库,可以从中提取这些东西!!