






C#在LINUX系统下接收组播数据有点习惯,进行绑定的时候,不能像WINDOWS系统下一样,绑定到本地的IP地址,必须绑定到组播地址,不然会收不到数据。
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
client.Client.Bind(new IPEndPoint(localAddress, config.ListenPort));
client.JoinMulticastGroup(groupAddress, localAddress);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
client.Client.Bind(new IPEndPoint(groupAddress, config.ListenPort));
client.JoinMulticastGroup(groupAddress, localAddress);
}
另外这两天同事在客户现场遇到在银河麒麟系统下,接收不到组播数据的情况。
但是用TcpDump是有收到组播数据。
后面查了一下,是因为LINUX系统防火墙的缘故。TcpDump能收到防火墙之前的数据,但是应用软件收不到防火墙拦截的数据。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。