Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于蜂窝数据的iPhone套接字侦听器_Iphone_Sockets_P2p - Fatal编程技术网

基于蜂窝数据的iPhone套接字侦听器

基于蜂窝数据的iPhone套接字侦听器,iphone,sockets,p2p,Iphone,Sockets,P2p,iPhone(或任何其他手机网络设备)是否可以通过插座监听并等待其他iPhone通过AT&T网络(P2P)连接?我们可以通过本地网络成功地做到这一点,但不能通过AT&T网络。我不是iPhone的专家,但这在很大程度上取决于iPhone上可用的传输层。如果UDP和TCP可用,那么就有可能。如果iPhone有一个公共IP地址(我对此表示怀疑),那么今天是你的幸运日,因为答案是肯定的(至少在理论上) 您可以轻松地实现UDP侦听器,并实现一些锅炉板代码来建立远程连接。但是,您很快就会注意到,您必须解决更

iPhone(或任何其他手机网络设备)是否可以通过插座监听并等待其他iPhone通过AT&T网络(P2P)连接?我们可以通过本地网络成功地做到这一点,但不能通过AT&T网络。

我不是iPhone的专家,但这在很大程度上取决于iPhone上可用的传输层。如果UDP和TCP可用,那么就有可能。如果iPhone有一个公共IP地址(我对此表示怀疑),那么今天是你的幸运日,因为答案是肯定的(至少在理论上)

您可以轻松地实现UDP侦听器,并实现一些锅炉板代码来建立远程连接。但是,您很快就会注意到,您必须解决更复杂的问题,例如查找对等方的公共IP地址(即,查找对等方)


如果这变得太复杂,您将需要探索P2P框架,例如JXTA(或JXSE,其Java实现)。顺便说一下,JXTA/JXSE适用于具有私有IP地址的对等方。我听说JXSE也成功地移植到了Android上。

我不是AT&T的客户,但他们3G网络上的设备几乎肯定都支持某种形式的NAT,也就是众所周知的“NAT”

考虑到您想要在几乎肯定都在NAT后面(可能不同)的设备之间进行双向通信,您需要某种方法来遍历所讨论的NAT。输入,或简称“眩晕”。此外,还将研究通用网络技术

有一个Objective-C/Cocoa框架,用于NAT遍历,名称为,在自由MIT许可下。它提供对和的支持,这可能会也可能不会让您一路实现——这取决于AT&T(或任何其他有问题的电信公司)是否允许您请求端口

如果上述框架还不够,您将不得不考虑提供一个知名的(即在广开互联网上)中继服务器来调解两个设备之间的连接。这是Skype、Hamachi、Xbox Live等服务通常采用的方法。祝你好运

谢谢你的帮助:)。这就是我们最终要做的(中继服务器)。太糟糕了,这个答案不可能来得更早:(