【问题标题】:iPhone (behind cellular NAT) peer-to-peer internet connection with a serveriPhone(在蜂窝 NAT 之后)与服务器的点对点互联网连接
【发布时间】:2011-07-01 09:40:17
【问题描述】:

我在 3G 蜂窝网络上有一部 iPhone,在互联网上有一台服务器,我希望它们能够双向交换消息。有时 iPhone 向服务器发出请求,有时服务器向 iPhone 发出请求。问题是 iPhone 位于蜂窝网络的 NAT 后面,并且它没有固定的 ip:port ,在每个新连接上端口都会更改。

我想我必须创建一个双向套接字 SO_REUSEADDR/SO_REUSEPORT 并使连接持久。

另外两个解决方案是 Apple 的推送通知和长轮询,现在我需要 iPhone 和服务器之间的 P2P 解决方案的答案。

你能告诉我我必须做什么或提供一个工作示例代码,iPhone 可以从互联网上的主机接收消息吗?

【问题讨论】:

  • 您使用的是 TCP 还是 UDP 套接字?您能否同时更改 iPhone 应用和服务器实现来解决您的问题?

标签: iphone p2p cellular-network


【解决方案1】:

遗憾的是,iPhone 不支持 Java,因为 JXTA 框架可以轻松解决您的问题。

您正在寻找类似TURN 的P2P 实现。 Iphone 必须启动与服务器的连接才能在 NAT 上打洞,是的,它必须保持活动状态(即使您研究更复杂的实现,例如用于 NAT 遍历的 STUNT)。

使用TURN,服务器必须在IPhone之间传输消息,使用STUNT,消息直接在设备之间传输,但要正确实现相当复杂。

【讨论】:

    【解决方案2】:

    我一直在阅读这些内容,我的理解是 XMPP 是适合您的解决方案。使用开源 XMPP 服务器(如 openfire)和 XMPPframework(一个 ios 模块)。

    【讨论】:

      猜你喜欢
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多