iPhone 和 Windows PC 之间的无基础设施通信

Posted

技术标签:

【中文标题】iPhone 和 Windows PC 之间的无基础设施通信【英文标题】:Infrastructure-less communication between iPhone and Windows PC 【发布时间】: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 上找不到任何东西。)

请回复有关解决方案的任何其他想法,或者如果我对我的任何假设有误,为什么某些事情无法工作。

【问题讨论】:

【参考方案1】:

你可以试着让你的手机成为一个临时的公共主机,你只需要一个正确的连接和一些优化,可能你可以减少不必要的功能,然后你所要做的就是在你的电脑上打开 IP上传。这可以反向到计算机 - 电话转移。

至于点对点,在这种情况下对你来说不是很有用。

我有一个想法,但这仅适用于从桌面传输到手机,您可以将数据编码为像素并用手机扫描它们,就像二维码技术的工作原理一样。

【讨论】:

谢谢!如何让我的 iPhone 成为“临时公共主机”?有这方面的详细信息吗? iPhone 必须充当基础设施 Wifi 接入点。 公共主机与 WiFi 无关,它就像把你的手机变成一个服务器并把它上网.. 基本上一个网站是如何运作的...... 关于您的光学传输想法,我们也有过,但问题是它不切实际,而且我们的一些潜在用户没有用于其他传输方向的网络摄像头。我们甚至考虑过声学信息传输(想想拨号时代的调制解调器),但可听范围内的噪音太烦人了,我们不能依赖笔记本电脑中的麦克风能够正常工作超声波范围。 能否请您指出我需要使 PC 连接到 iPhone 上的这个“公共主机”的 iOS-API? 嗯,你目前唯一的选择是我的服务器想法,让你的手机临时成为网络主机并让设备连接到它,基本上让它成为一个临时保管箱

以上是关于iPhone 和 Windows PC 之间的无基础设施通信的主要内容,如果未能解决你的问题,请参考以下文章

Windows 11“重大更新”:新版Bing添加至任务栏,iPhone也能在PC端接打电话了!

如何在Mac和Windows PC之间无线共享文件

通过USB镜像iPhone/iPad屏幕到电脑

Windows10系统迁移-同一PC硬盘之间

如何在 Wear OS 智能手表和 Windows PC 之间发送和接收数据

如何在windows pc和android设备之间建立蓝牙连接