3

我的问题是,是否可以在不建立 p2p 连接的情况下通过 wifi 广播在多个 android 设备之间发送和接收数据?

我们的教授要求我们设计一个无线网络系统,你在你的安卓手机中广播一条消息,附近的其他安卓手机接收它并再次广播,以便其他手机可以接收它并继续这样。这样,例如,当有人在教室或咖啡馆写消息时,每个人都可以收到并再次广播。(就像一个自组织网络系统)。虽然我的教授认为这是可以实现的,但我没有在网上找到像这种安卓网络系统这样的东西。所以我的问题再次是有可能做这样的事情吗?

任何有用的线索和参考将不胜感激。

编辑:我不得不更改问题的标题。

我找不到合适的解决方案,所以到目前为止我尝试了以下方法:我使用 Wifi 热点设置了一个 UDP 消息传递应用程序(它非常适合多客户端)。打开热点的手机是服务器,连接到它的其他人是客户端。然后,我决定把这个系统变成一个类似 adhoc 的系统,其中会有多个热点,客户端会以循环的顺序连接到它们,并充当这些服务器之间的桥梁。(每一秒,它们都会切换到另一个热点,反之亦然。)因此,它们会将消息从一个网络传送到另一个网络。(我知道这是非常低效的并且容易出现时间延迟;但这是我迄今为止提出的唯一想法。)

当我把这个系统告诉我的教授时,他说它太复杂了,我只需要将消息从一个设备广播到一个公共频道(无需设置网络连接),其他设备就会收听这个广播频道(无需连接到网络系统),接收消息并将自己的消息与收到的消息一起再次广播到该频道,如我在问题正文中所述。(他从未提及热点、Wifi 直连等。)他甚至告诉我,我唯一需要做的就是想得更简单,并使用 802.11 的属性。但是,我认为设置这样一个无线系统并不容易,至少对于尚未支持 ad hoc 系统的 Android 而言。因此,任何帮助将不胜感激。谢谢!

4

2 回答 2

5

上周发布的 Google Play Services 中的 Nearby Connections API 使用了 WiFi 多播:https ://developers.google.com/games/services/android/nearby

它适用于已经在同一 WiFi 网络上的设备。但是,它使用主机/客户端模型,不适用于 WiFi 直连或有线热点连接。

您还可以使用来自 ICS 的 WiFi 直接 API:https ://developer.android.com/guide/topics/connectivity/wifip2p.html 您可以通过 WiFi 直接将多个设备连接在一起,因此按照@willis 的建议触发 UDP 数据包会似乎要走的路

于 2015-03-25T02:15:29.067 回答
0

它是可实施的。你知道空压机吗?同样,您可以接收所有未发送给您的数据包,您可以发送任何类型的数据包,即使您未发送。

于 2015-06-09T13:49:59.930 回答