gpt4 book ai didi

c# - C#中具有多个网络的UDP组播

转载 作者:行者123 更新时间:2023-12-03 12:04:37 25 4
gpt4 key购买 nike

最近,我将程序更改为使用较少的资源,该程序之前使用TCP/IP进行UDP多播。

我遇到的问题是,在计划使用它的几台机器上,有两个或更多运行连接的netwrok卡。

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

对于多播,我使用:

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

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

在以前是TCP/IP的情况下,我可以在特定于某些网卡的IP上指定EntryPoint,但是在这里看来,这是不可能的,因为我需要在多播地址上而不是在我的机器上发送数据包。 。

谢谢您事先的帮助。

最佳答案

使用多播时,您仍然必须调用Bind。换句话说,监听器可以选择监听的网卡。当您发送一条消息时,本地网络堆栈将决定它需要自动退出哪些NIC。该UdpClient类使用在构造函数中传递的数据调用Bind。那应该是您的接收端点。看到这里:https://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient(v=vs.110).aspx。然后,在发送数据时,请使用带有端点参数的Send方法。在其中传递目标地址。

关于c# - C#中具有多个网络的UDP组播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com