2013-10-21 48 views
2

我目前正在使用网络上的多播在网络上发送消息(从一个Android设备)到网络上的所有其他Android设备(包括其自身)。Android Wifi Direct多播问题

当两部手机都通过本地WiFi网络连接时,它可以按需要工作。 I.e电话发送消息,电话A和电话B都收到该消息。但是,最终目标是通过WiFi-Direct连接手机。

因此,我将两个设备连接在一起,并再次尝试相同的过程,但这次只有发送我正在广播的数据包的电话才会收到它。即电话A发送消息并接收它,但电话B不接收来自电话A的消息。

因此,我的最终问题是组播是否在Android设备之间使用WiFi-Direct时工作?其他人在Android平台上遇到WiFi-Direct和Multicast的问题吗?

+0

感谢您的回复。所以我的目标是在每个设备上同时收到(给予或者花费几毫秒)的消息。是否可以将消息完全同时发送到每个设备,还是必须在循环中一个接一个地发送消息? –

+0

如果您仔细阅读链接的文档,应该非常清楚您需要如何处理它。是的,如果多播不可用,则需要自己处理分发。如果您在“几毫秒内”内容忍 - 我不会担心环路引起的抖动 - 这是套接字通信的永恒。 – 323go

+0

@ 323go我不明白。您不需要在子网内使用路由器进行组播。您需要一台路由器来组播*其他*子网。 – EJP

回答

3

类似的问题已经被问,请参阅我的回答有:Android Wi-Fi Direct Network

综上所述:组播理论上应该在的Wi-Fi Direct的工作,但一些Android设备阻止堆栈上的传入非单播流量水平。由于您在使用普通Wi-Fi时已经在设备上工作,这似乎是另一个问题。确保你获得了一个MulticastLock。我在链接的答案中提供了一种使用单播的替代解决方案。