【发布时间】:2019-09-18 10:15:33
【问题描述】:
我对这个网络配置不熟悉,我正在尝试理解以下代码。
var Server = new UdpClient();
var multicastIp = IPAddress.Parse(_connectionParams[0]);
IPAddress localIp;
if (IPAddress.TryParse(_connectionParams[1], out localIp))
Server.JoinMulticastGroup(multicastIp, localIp);
else
Server.JoinMulticastGroup(multicastIp);
var endPoint = new IPEndPoint(multicastIp, int.Parse(_connectionParams[2]));
根据我的理解,多播是通过路由器将数据发送到多播ip(如233.7.6.5),接收者可能需要加入组才能接收数据。
Server.JoinMulticastGroup(multicastIp, localIp);
上面那行,localIp在这里有什么用?提供 localip 会将数据单播到特定的 IP?或者我需要了解的其他内容。
【问题讨论】:
-
一个连接需要两个点,一个源和一个目标。所以你需要一个本地虚拟端点作为源。
-
@jdweng 本地虚拟端点在这里重要吗?无论如何,数据流通过多播。你能指导我吗?
-
是的,您需要端点。多播通常在一个子网内,路由器不转发多播(除非在路由器上设置了允许多播属性)。见 msdn:见 msdn:docs.microsoft.com/en-us/dotnet/api/…
标签: c# udp multicast udpclient