iOS Wifi-直接通信

Posted

技术标签:

【中文标题】iOS Wifi-直接通信【英文标题】:iOS Wifi-Direct Communication 【发布时间】:2014-07-10 15:37:13 【问题描述】:

我想知道是否有办法让两部 iPhone 与 Wifi-Direct 独占通信。

(没有蓝牙,没有服务器,只有 Wifi-Direct)

如果我错了,请纠正我,但 MultiPeerConnectivity、GameKit 和 CFNetServices 不允许专门使用 Wifi-Direct。如果他们这样做,有人可以给我举个例子吗?

感谢您的宝贵时间!

【问题讨论】:

【参考方案1】:

Multipeer Connectivity 框架不支持 Wi-Fi Direct,但它确实支持使用类似于 Wi-Fi Direct 的 Apple 专有技术在两台 ios 设备之间进行直接 ad-hoc 连接。

Multipeer reference 中提到了它,称为“点对点 Wi-Fi”。

如果您将 includesPeerToPeer 属性设置为 YES,您还可以使用 Bonjour 和 NSNetServiceNSNetServiceBrowser 在两台 iOS 设备之间获得更基本的点对点 Wi-Fi 发现和通信(请注意此在线文档中未提及,但在头文件中)。这就是 Multipeer Connectivity 的基础。

【讨论】:

你能指出我学习如何做到这一点的正确方向吗? 基本上,尝试任何 MultiPeer Connectivity 教程,例如 this one,然后在测试时使用两个物理 iDevice,它们都启用了 Wi-Fi,禁用了蓝牙,并且没有连接到任何现有的 Wi -Fi 网络。一段时间后,您应该会发现他们可以发现彼此并建立联系。除了“普通”多点连接代码之外,不需要特殊代码来设置点对点 Wi-Fi。 (使用 NSNetService 是可选的,而且更复杂,所以不要从那开始。) 这个过程有没有办法不使用蓝牙但仍然启用蓝牙? 我不认为 API 为您提供了一种方法来控制它是否使用 Wi-Fi 或蓝牙(如果两者都启用)。 Multipeer 框架将使用它认为“最好的”。事实上,它可能更喜欢 Wi-Fi 而不是蓝牙,但我还没有测试过。 简而言之,我需要两个 iDevice 仅通过 wifi-direct 相互交谈。我仍然需要启用蓝牙。他们都必须连接到互联网。

以上是关于iOS Wifi-直接通信的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序可以通过 WiFi 与 MFi 配件通信吗?

通过 iOS 设备中的 wifi 或无线接入点进行通信

通过 WiFi 与 Android/iOS 通信的跨平台服务器应用程序

Android开发—智能家居系列:UDP通信发送指令

基于lora及wifi无线通信的无线PLC在物联网远程IO控制场合中的应用

iOS 上的 WiFi 直连