Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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
Java 打孔。。。需要有经验的意见_Java_Android_Sockets_Hole Punching - Fatal编程技术网

Java 打孔。。。需要有经验的意见

Java 打孔。。。需要有经验的意见,java,android,sockets,hole-punching,Java,Android,Sockets,Hole Punching,在进行大量编码之前,我想检查一下这是否正确,以及它是否适用于3G。非常欢迎那些实际执行过打孔功能的人的意见 A->S(TCP):A的套接字信息 B->S(TCP):B的套接字信息 A->S(TCP):请求B的套接字信息 S->A(TCP):B的套接字信息 A=>B:继续使用UDP数据包拍摄B的套接字信息 S->B(TCP)A的套接字信息+连接 B=>A:使用UDP数据包不断拍摄A的套接字信息 ab(TCP):数据 我真的更喜欢TCP。如果这不起作用,有什么问题?我能做些什么使它起作用?这是否符合

在进行大量编码之前,我想检查一下这是否正确,以及它是否适用于3G。非常欢迎那些实际执行过打孔功能的人的意见

A->S(TCP):A的套接字信息

B->S(TCP):B的套接字信息

A->S(TCP):请求B的套接字信息

S->A(TCP):B的套接字信息

A=>B:继续使用UDP数据包拍摄B的套接字信息

S->B(TCP)A的套接字信息+连接

B=>A:使用UDP数据包不断拍摄A的套接字信息

ab(TCP):数据


我真的更喜欢TCP。如果这不起作用,有什么问题?我能做些什么使它起作用?

这是否符合“主要基于意见”的条件?我不确定。是吗?虽然我在理论上学会了,但实际上我以前从未做过。所以,我想听听你的意见。。。由于TCP/UDP协议的不同,防火墙和NAT可能会也可能不会把事情搞砸。我认为当你特别要求意见时,它主要是基于意见的。我认为SO的目标是用一个定义良好的解决方案来回答特定的技术问题。在您看来,这是解决整个NAT问题的可行解决方案吗?需要打孔来创建P2P连接。但当你落后于3G/4G网络时,这几乎是不可能的。因为大多数3G/4G网络采用对称NAT,打孔不适用于这种NAT。如果您喜欢TCP打孔,请参阅此答案。