我正在开发一个 Android 应用程序,它向 LAN 上的设备发送 udp 广播消息。应用程序在设备上以及在 Windows 上运行的模拟器上运行良好。但是,我无法让它在 Linux 和 Mac Android 模拟器上运行。
由于 255.255.255.255 在 android 上不工作,我使用子网掩码计算广播 ip。 (在我的例子中,广播 IP 是 192.168.1.255,其中主机 IP 是 192.168.1.88/24)。但是消息永远不会发送。还检查了 Wireshark,但似乎 udp 包没有超出模拟器。
有没有人实现了在Linux Android Emulator 上发送广播消息?
任何建议将不胜感激。
最佳答案
您能提供您的代码示例吗?当使用 UDP 而不是 TCP 时,重要的是使用 DatagramSocket 和 DatagramPackets 而不是标准套接字或 SSLSocket(或任何其他类型的套接字)。看起来这可能就是您正在做的事情,因为它有时会起作用,但它可能正在尝试。如果这是问题所在并且您需要任何建议,这就足够了:
http://developer.android.com/reference/java/net/DatagramSocket.html
关于安卓模拟器udp广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149771/