我如何正确地设置我的UdpClient在c#中收听多播地址239.255.255.250:1900
本文关键字:地址 多播 1900 正确地 设置 我的 UdpClient | 更新日期: 2023-09-27 17:50:38
我正在用3台笔记本电脑设置一个小型本地网络。我的目标是实验UpNP协议,让笔记本电脑使用UpNP发现彼此。为了做到这一点,它们需要能够侦听来自彼此的通知。根据协议,这些通知在组播地址239.255.255.250:1900上发送。然而,我在设置笔记本电脑监听该地址时遇到了问题。我开始只使用1个人电脑。我的PC的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提供这样一个令人敬畏的知识库,从中提取这些东西!!