【问题标题】:Peer-to-peer network over wifi in iOSiOS中通过wifi的点对点网络
【发布时间】:2013-02-28 04:21:15
【问题描述】:

我已经在这几天了,似乎无法找到解决方案。我想在 iOS 上通过 wifi 创建一个点对点网络。所有开源代码似乎都支持运行服务器或成为客户端,但没有构建支持两者的代码 - 对等点。有人知道我可以这样做吗?

【问题讨论】:

  • 你有没有看过类似的东西:github.com/robbiehanson/CocoaHTTPServer 我知道它仍然是客户端/服务器关系,但似乎内置的 Apple adhoc 网络 API 仍然是私有的。
  • 我不清楚你的问题。您是在寻找可让您在两台 iOS 设备之间创建自组 WiFi 网络的代码,还是在寻找一种让已通过 WiFi 连接的两台 iOS 设备执行 p2p 通信的方法?
  • 了解 Internet 和 BSD 套接字的工作原理。使用 bind() 调用。使用 STUN 服务器。使用大量的套接字。使用可达性通知 API。枚举网络接口。绑定到具体端口。如果您愿意,请使用多播发送。知识产权是美好的世界,但为 Apple 学习编码的人却一无所获:-(

标签: ios iphone networking multipeer-connectivity peer


【解决方案1】:

iOS 7 正是为此目的添加了Multipeer Connectivity Framework

【讨论】:

【解决方案2】:

您是否考虑过使用 Apple 的 GameKit 框架?我过去曾将它用于设备之间的一些简单通信。这真的很简单,可以让你快速走出大门。 This 看起来不错的教程。

【讨论】:

  • 问题是这涉及到他们接受我的应用程序可以使用gamekit,这对用户来说似乎有点随机。
  • 哪个部分,GameKit 的名称,GameKit UI 还是两者都有?您可以推出所有自己的自定义 UI,没有人会更聪明。 GKPeerPickerController 将简化您的生活,开箱即用,看起来不像是在玩游戏。但是,您可以推出自己的解决方案并拥有自己的 UI。
  • 我目前在非游戏中使用 GameKit 进行 p2p 数据传输,我不知道是否曾提示用户接受或批准此功能。蓝牙连接设置起来相当容易,但是与 wi-fi 相比,连接不稳定,而且数据传输速度较慢,不仅仅是少量数据。
  • 不推荐使用用于 p2p 连接的 GameKit 部分。 Apple 推荐使用 Multipeer Connectivity Framework,但速度太慢
【解决方案3】:

我认为Open Peer 是正确的解决方案。它在设备之间提供真正的直接对等连接,而无需集中式服务器。看看这个介绍性的video

【讨论】:

  • 开放对等通过互联网进行
  • 他们似乎已经放弃了 iOS 项目。上一次 iOS Github 更新是 5 年前
【解决方案4】:

您无法在 iOS 中使用当前 API 以编程方式创建 wi-fi 网络。不过,GameKit 提供了一些 API 来通过蓝牙实现这一点。

如果您希望使用 CocoaHTTPServer 实现自定义解决方案,请注意您仍然无法创建直接 wi-fi 连接,您只需能够在相同(预先存在的)wi-fi 上连接设备网络。

iOS 中的 Ad-hoc 点对点 Wi-Fi(例如 802.11s)还有几年的时间。也许是 iOSX ;)

【讨论】:

  • documentation 表示:GKSession 对象提供了使用蓝牙或 Wi-fi 发现并连接到附近的 iOS 设备的能力。
  • 只有蓝牙用于直接点对点连接。无线网络用于 LAN 上的 Bonjour。
  • GKSession 在 iOS 7 中已弃用
【解决方案5】:

iOS 支持Multipeer Connectivity framework,它使 iOS 设备能够通过蓝牙、基础设施(带有路由器)WiFi 或 P2P 相互通信。

但是,它没有提供明确使用 P2P 的方法。有一个抽象层远离设备的任何对等设备(其他 iOS 设备)的连接方式,目前它不允许连接非 iOS 设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2012-07-04
    • 2016-04-11
    • 1970-01-01
    相关资源
    最近更新 更多