同行通过3G

时间:2010-03-16 17:18:53

标签: iphone networking

嘿,我正试图通过3G获得CFStream连接。我可以使用主机名在wifi上工作,但当我尝试直接连接到IP地址时,它会失败。

是否有关于如何通过3G连接的指南?

由于 ASH

2 个答案:

答案 0 :(得分:2)

当你连接到3G时,你通常会在实现某种“NAT”方案的路由器后面。这意味着您的iPhone在内部(3G网络)获得私有内部IP地址,在外部(Internet)获得共享的“真实”公共IP地址。

当您只是连接到Internet上的服务的客户端时,这一切都很好,但是当您尝试在相同情况下连接到其他客户端时,它会失败。

没有简单的解决方案。像Skype这样的程序通过使用具有公共IP地址的中间服务器来解决这个问题,这些服务器可以在这些“NAT”网络后面的主机之间中继网络流量。

答案 1 :(得分:2)

在某些情况下,您可以使用NAT遍历。这不是一种保证方法,取决于NAT的类型,因此如果您想保证连接,仍需要中继服务器。

一般规则是,如果两个客户端都在对称NAT之后,则需要中继服务器。 如果只有一个NAT是对称的,那么STUN,ICE方法可以帮助建立P2P连接。

以下内容可能会对您有所帮助:

交互式连接建立请参阅en.wikipedia.org/wiki/Interactive_Connectivity_Establishment

PJNATH SIP / VoIP解决方案中NAT穿越的开源项目见PJSIP.ORG