【问题标题】:UDP Multicast with multiple networks in C#C#中具有多个网络的UDP多播
【发布时间】:2015-11-04 23:11:56
【问题描述】:

最近,我将以前使用 TCP/IP 的程序更改为 UDP 多播,因为它使用的资源少得多。

我遇到的问题是,在我计划使用它的少数机器上,有两个或多个网卡正在运行连接。

我可以从程序级别选择在哪个连接上进行多播吗?我尝试更改系统中的不同设置,例如网络优先级,但没有任何效果。

对于多播我使用:

UdpClient publisher = new UdpClient(IP, Port);
publisher.Send(data, data.Length);

其中 IP 是多播范围中的一个(主要是 230.X.X.X)。

在 TCP/IP 之前的情况下,我可以在特定网卡的 IP 上指定入口点,但在这里似乎是不可能的,因为我需要在多播地址而不是在多播地址上发送数据包我的机器是我的。

提前感谢您的帮助。

【问题讨论】:

标签: c# sockets udp multicast


【解决方案1】:

使用多播时,您仍然需要致电Bind。换句话说,侦听器可以选择他们侦听的 NIC。当您发送消息时,本地网络堆栈将决定它需要自动发送哪些 NIC。该 UdpClient 类使用构造函数中传递的数据调用 Bind。这需要成为您的接收端点。见这里:https://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient(v=vs.110).aspx。然后,在发送数据时,使用带有端点参数的Send 方法。把目标地址传进去。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    相关资源
    最近更新 更多