[英]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.