gpt4 book ai didi

android - 热点/网络共享模式下 Android 上的多播支持

转载 作者:可可西里 更新时间:2023-11-01 19:07:48 27 4
gpt4 key购买 nike

我有一个原型(prototype) Android 应用程序,它正在监听多播数据包以“发现”要与之通信的客户端。套接字设置与此类似:

InetAddress group = InetAddress.getByName("228.1.2.3");
MulticastSocket s = new MulticastSocket(4000);
s.joinGroup(group);

当所有设备都通过 WiFi 连接时,这非常有效。我想通过充当可移植热点的手机来支持这一点。然而,虽然我的所有设备似乎都正确连接到热点,但我不再接收多播数据。我想知道是否存在禁止在热点模式下进行此类通信的限制,或者是否需要任何额外的网络配置才能启用此功能?我已经在几个运行 Gingerbread 和 Froyo 的不同设备上尝试过,但没有成功。

最佳答案

正如本文所示: https://plus.google.com/+Chainfire/posts/9NMemrKYnCd

MulticastSocket::setNetworkInterface()

会是答案

您可以通过以下方式找到 wlan0 eth:

public static NetworkInterface getWlanEth() {
Enumeration<NetworkInterface> enumeration = null;
try {
enumeration = NetworkInterface.getNetworkInterfaces();
} catch (SocketException e) {
e.printStackTrace();
}
NetworkInterface wlan0 = null;
StringBuilder sb = new StringBuilder();
while (enumeration.hasMoreElements()) {
wlan0 = enumeration.nextElement();
sb.append(wlan0.getName() + " ");
if (wlan0.getName().equals("wlan0")) {
//there is probably a better way to find ethernet interface
Log.i(TAG, "wlan0 found");
return wlan0;
}
}

return null;
}

试一试,让我知道它在热点模式下是否有效...

关于android - 热点/网络共享模式下 Android 上的多播支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com