繁体   English   中英

组播丢弃大量消息

[英]Multicast Dropping lots of messages

我目前正在开发一种在办公环境中运行的服务,并且我目前正在尝试利用UPnP来发现和管理该服务-将在5到45台设备上运行。 在测试中,我使用了两个运行Android 8.0.0的三星设备。

广播地址239.255.255.250端口1900

我正在运行Wireshark,正在观察通过网络发送的所有消息。 在我的应用程序中,我仅接收到一些消息,即使这些消息不是Wireshark的频率。

    while (true)
        {
        try {
            while (true)
                {
                buffer = new byte[1000];
                dp = new DatagramPacket(buffer, buffer.length);
                mcSocket.receive(dp);
                String s = new String(dp.getData(), 0, dp.getLength());
                InetAddress ia = dp.getAddress();
                String hostAddress = ia.getHostAddress();
                Log.e(TAG, "index= " + s);

                if (s.contains("upnp:rootMaster"))
                    {
                    System.out.println();
                    }
                }
            }
        catch (IOException ex)
            {
            Logger.getLogger(DLNASearchListener.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

我可以看到正在调试的设备生成的消息,来自其他设备的一些消息,以及偶尔在其他设备上运行的服务生成的消息。

我确实运行了多个WiFi网络,但是两个设备都设置在相同的SSID上(这是将来桥接SSID的另一个问题)。

我尝试了一个多播程序,它似乎吸收了更多的传输。

我已经尝试过WiFi锁定,但并没有发现它有什么好处-设置后我什么也没收到。

    WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    WifiManager.MulticastLock multicastLock = wifi.createMulticastLock(masterService);
    multicastLock.setReferenceCounted(true);
    multicastLock.acquire();

这应该是相当简单的,但是显然我缺少了一些东西。

任何帮助将不胜感激。

道歉,但只是在另一块板上发现Android 8中存在一个已知问题,并且他们的多播支持已经存在了几个月(考虑到这是网络的基本组成部分,我希望他们能尽快解决它),这很致命向客户部署我的服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM