当前位置:  开发笔记 > 编程语言 > 正文

在具有多个NIC的计算机上,UDPClient多播接收失败

如何解决《在具有多个NIC的计算机上,UDPClient多播接收失败》经验,为你挑选了0个好方法。

我有一台带有多个NIC的计算机 - 而且UDPClient的send方法一直失败.这是代码:

        private static void receiveData()
    {
        recvSock = new UdpClient(PORT);
        //recvSock.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastInterface, mainInterface);
        recvSock.JoinMulticastGroup(IPAddress.Parse(IP), 50);

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

        while (true)
        {
            byte[] data = recvSock.Receive(ref iep);

            // Do not include messages from us
            if (myIPs.Contains(iep.Address))
                continue;

            string stringData = Encoding.ASCII.GetString(data, 0, data.Length);
            Console.WriteLine("received: " + stringData);

        }
    }

PORT = 5000,IP = 224.5.6.7,所以应该没问题.主要问题是我无法通过recvSock.Receive()行.我看到数据包通过wireshark进入 - 但代码只是不会处理它们...

思考?提前致谢!

编辑:我可以确认多个NIC导致问题---代码可以正常使用单个NIC.取消注释SetSocketOption行应该允许它使用多个NIC,但它仍然失败....想法?

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有