iPhone(支持蜂窝NAT)与服务器的点对点互联网连接

时间:2011-02-21 16:21:32

标签: iphone p2p cellular-network

我在3G蜂窝网络上有一部iPhone,在互联网上有一台服务器,我希望他们能够双向交换消息。有时,当服务器向iPhone发出请求时,iPhone会向服务器发出请求。问题是iPhone支持蜂窝网络的NAT,并且在端口发生变化的每个新连接上都没有固定的ip:端口。

我认为我必须制作双向套接字SO_REUSEADDR / SO_REUSEPORT并使连接保持不变。

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

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

2 个答案:

答案 0 :(得分:0)

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

您正在寻找的是TURN类似P2P的实现。 Iphone必须启动与服务器的连接以打开NAT中的漏洞,是的,它必须保持活动状态(即使您为NAT遍历调查更复杂的实现,如STUNT)。

使用TURN,服务器必须在IPhones之间传输消息,STUNT,消息直接在设备之间传输,但实现起来非常复杂。

答案 1 :(得分:0)

我一直在做很多关于这些事情的阅读,我的理解是XMPP是你的解决方案。使用开源XMPP服务器(如openfire)和XMPPframework(ios模块)。