gpt4 book ai didi

java - NAT 后面的两台主机使用什么协议(protocol)进行 P2P 文件传输?

转载 作者:行者123 更新时间:2023-12-01 14:21:32 24 4
gpt4 key购买 nike

我正在尝试构建一个使用 Java 在主机之间进行 p2p 文件传输的应用程序。它对于具有公共(public) IP 的主机运行良好,但当我在家用计算机上测试它时失败了。

然后我发现我家所有的电脑都有相同的IP。因此,我得出的结论是我的 ISP 使用了 NAT 过载。如果我的 ISP 这样做,那么很可能许多其他 ISP 也这样做。我希望我的应用程序即使在 NAT 后面也能正常工作。

我做了一些研究,发现 UDP 可能更适合这种情况,因为 UDP 打洞比 TCP 打洞效果好得多。这是真的吗?说实话,我更喜欢使用TCP,但是如果UDP效果更好的话我就必须使用UDP。 (我知道 UDP 不可靠。我需要在 UDP 之上构建一些 rdt 协议(protocol)。)或者还有其他我错过的好的算法吗?

最佳答案

您可以简单地使用 UDT 来实现此目的。它是一个基于 UDP 编写的开源、高性能且经过充分测试的协议(protocol)。基本上是可靠的 UDP,支持 P2P 连接,并专门针对高性能数据传输进行了优化。

实际 UDT 项目托管在以下位置: http://udt.sourceforge.net/

可以在这里找到 Java 版本的 UDT, http://sourceforge.net/projects/udt-java/

关于java - NAT 后面的两台主机使用什么协议(protocol)进行 P2P 文件传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com