gpt4 book ai didi

iphone - iOS 蓝牙数据传输、Gamekit 或 Bonjour

转载 作者:行者123 更新时间:2023-12-03 20:52:10 26 4
gpt4 key购买 nike

我正在四处寻找合适的技术来实现我想要的应用程序。基本上我使用蓝牙通过 2 个 iOS 设备建立连接。在通信的第一部分中,我只发送消息,一切正常。在第二部分中,我想允许用户共享视频文件;例如,假设视频文件为 20 MB。现在,通过两台设备传输如此大数据的最佳选择是什么?我可以使用 GameKit 并将数据拆分为小数据包吗?需要合理的时间吗?或者最好使用 Bonjour 并等待,直到用户位于同一 wifi 网络下或通过 2 台设备创建 wifi 网络?

提前致谢

最佳答案

如果其他人(像我一样)偶然发现这个问题,我将分享我的经验:

蓝牙

优点:你不需要wifi

缺点:苹果只允许访问BLE接口(interface),这比普通蓝牙慢很多。我尝试过,传输 1 MB 数据大约需要 5 分钟。此外,您需要将数据切成约 20 字节的 block ,并确保另一端正确接收文件。

游戏工具包

我还没有真正尝试过,但似乎 GK 可以发送小短信(因为它是为此设计的),但是发送较大的文件仍然会很慢。此外,您只能同时连接 8 个设备。

Bonjour 和 Wifi

优点:这是最快的。您可以在几秒钟内发送合理大小的文件(几 MB)。

缺点:您需要位于同一个 wifi 网络中。

使用远程服务器

优点:假设您有良好的互联网连接,速度相当快,并且您不依赖 wifi(如果您有 3G/LTE)。

事实证明,当您使用像 Parse 这样的后端即服务提供商时,这非常容易。

缺点: 好吧,您必须编写该服务器软件... 您的应用程序用户可能需要移动数据计划。


我最终得到了解决方案 #3,使用 Bonjour 和 Wifi,因为我不想编写服务器端代码。如果你想做到这一点,你需要学习 Socket 编程。我建议使用 CocoaAsyncSocket,它使用 TCP,这样您就不必确保正确接收到文件。

现在已经是2016年了,Swift已经可以用在Obj-C项目中了,你可以看一下我的解决方案,几乎可以省去你所有的工作:https://github.com/JojoSc/OverTheEther

它允许您将任何类型的对象(实现 NSCoding 协议(protocol))发送到另一台设备。

关于iphone - iOS 蓝牙数据传输、Gamekit 或 Bonjour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com