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 和 NSNetService
和 NSNetServiceBrowser
在两台 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 配件通信吗?
通过 WiFi 与 Android/iOS 通信的跨平台服务器应用程序