【问题标题】:Can't receive multicasts on Windows Server 2008无法在 Windows Server 2008 上接收多播
【发布时间】:2010-02-16 17:15:58
【问题描述】:

我的以下代码在我的 Windows 2003 服务器上运行良好:

static void Main(string[] args)
        {

            UdpClient sock = new UdpClient(5353);

            IPAddress multicastIP = IPAddress.Parse("224.0.0.251");
            IPEndPoint multicastEndpoint = new IPEndPoint(multicastIP, 5353);
            sock.JoinMulticastGroup(multicastIP);

            IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0);

            Console.WriteLine("Ready...");
            byte[] data = sock.Receive(ref iep);
            ...
            sock.Close();
        }

但在我的 Windows 2008 R2 服务器(在 VMWare Workstation 内运行,将单个网络适配器配置为 NAT)上,我的应用程序没有收到任何数据包。

如果我运行wireshark,它显示数据包正在传送到机器(它们看起来正确并且它们具有正确的多播IP和端口)但应用程序层没有收到任何信息(它在.Receive中永远阻塞)

我错过了什么吗?

【问题讨论】:

  • 想要添加 - 当数据包从本地机器(同一台机器上的发送者和接收者)发送时,代码在 Win2008 上也可以正常工作。当它从内部网络(192.x.x.x)上的外部机器发送时它不起作用,即使 Wireshark 显示数据包已到达(所以我怀疑 VMWare 有问题)。从内部机器发送时,它是通过接口IP发送的,而不是环回IP..

标签: .net-3.5 networking multicast


【解决方案1】:

我已经让它工作了,虽然我不确定问题是什么。可能是机器上的防火墙配置不正确(我试图让这个应用程序对防火墙友好),但这超出了这个线程的范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多