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



我正在研究如何在iOS应用程序(我们希望在app Store上发布)和我可能开发的Windows库之间无线发送数据(不使用任何基础设施,如Wifi路由器)。我需要一次发送几十KB,每次等待几秒钟传输是可以接受的。

这里有几个明显的想法,以及为什么我们不能使用它们:

  • 蓝牙低能耗:BLE并非在我们需要支持的所有电脑上都可用,而且向所有用户发送蓝牙U盘是不现实的。

  • 在电脑上打开热点,将iPhone连接到它:有些电脑的旧Wifi芯片组不允许这样做。

  • 在iPhone上打开热点,将PC连接到它:当没有手机覆盖时,热点会被iOS自动禁用,如果不使用私人API(我们不能使用),就无法以编程方式重新打开它。如果我错了,请纠正我。

关于无线、电磁通信方法,基本上我们唯一可以依赖的就是PC可以连接到Wifi热点。

这导致了PC可以在基础设施Wifi接入点上连接到iPhone的想法,该接入点是开放的,以支持一些iOS框架用于在设备之间通信的对等功能。我知道这些:GameKit和多人连接(如果你知道其他基础设施较少的对等通信方法,请告诉我)。根据我的阅读和尝试(在多人连接的情况下),这两个框架都可以在没有蓝牙的情况下运行,而且由于它们在没有支持P2P Wifi的Wifi芯片组的iPhone上得到支持,因此至少有一方必须打开基础设施接入点。

我在Engadget上读到,苹果公司让反向工程和开发GameKit协议的独立实现变得非常困难:http://www.engadget.com/2011/02/01/hunting-for-open-gamekit-solutions/

苹果公司尚未记录多人连接通信的工作原理,但我发现了一位安全研究人员的演示文稿,该演示文稿解释了连接的建立者:https://datatheorem.github.io/documents/BH_MultipeerConnectivity.pdf

现在的问题是,是否有可能(以及需要多少时间)进一步逆向工程并重新实现其中一个协议的所需部分。也许你知道有人启动了这样一个项目?(我在谷歌上找不到任何东西。)

请回答关于解决方案的任何其他想法,或者如果我对某些事情不起作用的任何假设都是错误的。

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

至于对等,在这种情况下,它对你没有多大用处。

我有一个想法,但这只适用于从台式机传输到手机,你可以将数据编码成像素,然后用手机扫描,就像qr码技术一样。

最新更新