Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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 需要udp打孔的帮助吗_Java_Udp_P2p_Nat Traversal - Fatal编程技术网

Java 需要udp打孔的帮助吗

Java 需要udp打孔的帮助吗,java,udp,p2p,nat-traversal,Java,Udp,P2p,Nat Traversal,嘿,我正在做一个用java创建p2p网络的项目。 我已经建立了n/w使用UDP为本地局域网,我正在工作 通过internet发送UDP数据报。我遇到了这个叫做UDP打孔的概念,但似乎找不到任何相关的主题或库。 有人能帮忙吗?我想这就是人们常说的。也许你会更幸运地搜索这个标题。你不能通过iNet进行UDP广播/多播。但是,您可以通过internet传递TCP 我建议您尝试让网络上的网关侦听您选择的UDP数据包,通过TCP将数据传递到另一个网络上的另一个网关,该网关可以将此信息转换回UDP。您可能正

嘿,我正在做一个用java创建p2p网络的项目。 我已经建立了n/w使用UDP为本地局域网,我正在工作 通过internet发送UDP数据报。我遇到了这个叫做UDP打孔的概念,但似乎找不到任何相关的主题或库。
有人能帮忙吗?

我想这就是人们常说的。也许你会更幸运地搜索这个标题。

你不能通过iNet进行UDP广播/多播。但是,您可以通过internet传递TCP


我建议您尝试让网络上的网关侦听您选择的UDP数据包,通过TCP将数据传递到另一个网络上的另一个网关,该网关可以将此信息转换回UDP。

您可能正在寻找的是的NAT穿越设施。许多消费者路由器支持以编程方式为任何请求的应用程序打开整个防火墙和转发端口。或者蠕虫。无论如何。:)

查看上的另一个问题。Erik对UDP打孔有很好的描述。

以下是一些强烈推荐的UDP(或TCP)打孔技术材料:

当然,还有维基百科:

从本质上讲,由于大多数计算机都在所谓的网络地址转换器(NAT)后面,因此您需要使用计算机的公共IP和公共端口,因为internet上的人看到它们。此外,您还需要专用IP和专用端口(或者当应用程序本身看到其套接字时……这只是为了防止您与您尝试连接的其他应用程序/计算机/节点位于同一NAT后面)。然后,两个节点都尝试通过尝试公共和私有地址来建立连接。当这两个应用程序建立联系时,它们成功地穿越了NAT——它们成功地打孔了

一种流行的方法是让两个客户端都连接到一个服务器,这有助于协调两个客户端。它协调将公共和私有IP和端口发送到另一个客户机,然后使用该客户机执行“打孔”

此外,使用UDP协议显然是因为它比TCP更成功(经验上)。注意:我试图找到有关这方面的统计数据,但没有成功

有。