【发布时间】:2015-04-21 15:58:56
【问题描述】:
我正在研究如何在 iOS 应用(我们希望在 App Store 上发布)和我可能开发的 Windows 库之间以无线方式发送数据(不使用任何基础设施,例如 Wifi 路由器) .我需要一次发送几十千字节,每次传输等待几秒钟是可以接受的。
这里有一些明显的想法,以及为什么我们不能使用它们:
低功耗蓝牙:BLE 并非在我们需要支持的所有 PC 上都可用,而且向所有用户发送蓝牙 USB 记忆棒也不切实际。
在 PC 上打开热点,将 iPhone 连接到它:有些 PC 的旧 Wifi 芯片组不允许这样做。
在 iPhone 上打开热点,将 PC 连接到它:当没有蜂窝覆盖时,热点会被 iOS 自动禁用,并且如果不使用私有 API 就无法以编程方式重新打开它(我们可以'吨使用)。如果我对此有误,请纠正我。
关于无线、电磁通信方式,基本上我们唯一可以依靠的就是PC可以连接Wifi热点。
这导致了这样一个想法,即 PC 可以在基础设施 Wifi 接入点上连接到 iPhone,该接入点被打开以支持某些 iOS 框架用于在设备之间进行通信的点对点功能。我知道这些:GameKit 和 Multipeer Connectivity(如果您知道其他无基础设施的点对点通信方法,请告诉我)。根据我的阅读和尝试(在 Multipeer Connectivity 的情况下),这两个框架都可以在没有蓝牙的情况下运行,并且由于它们在没有支持 P2P-Wifi 的 Wifi 芯片组的 iPhone 上受支持,因此至少一侧必须打开基础设施接入点。
我在 Engadget 上读到,Apple 让逆向工程和开发 GameKit 协议的独立实现变得非常困难:http://www.engadget.com/2011/02/01/hunting-for-open-gamekit-solutions/
Apple 尚未记录 Multipeer Connectivity 通信的工作原理,但我发现一位安全研究人员的演示文稿解释了谁建立了连接:https://datatheorem.github.io/documents/BH_MultipeerConnectivity.pdf
现在的问题是,是否有可能(以及需要多少时间)进一步逆向工程并重新实现这些协议之一的所需部分。也许你知道有人开始了这样一个项目? (我在 Google 上找不到任何东西。)
请回复有关解决方案的任何其他想法,或者如果我对我的任何假设有误,为什么某些事情无法工作。
【问题讨论】:
标签: ios communication p2p gamekit multipeer-connectivity