首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于位于NAT之后的两台主机,应使用什么协议进行P2P文件传输?

对于位于NAT之后的两台主机,应使用什么协议进行P2P文件传输?
EN

Stack Overflow用户
提问于 2013-07-07 12:35:35
回答 3查看 1.7K关注 0票数 0

我正在尝试构建一个使用Java在主机之间进行p2p文件传输的应用程序。它在有公网I的主机上工作得很好,但当我在家里的电脑上测试它时,它失败了。

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

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

EN

回答 3

Stack Overflow用户

发布于 2013-07-09 17:50:37

为此,您可以简单地使用UDT。它是一个开源的、高性能的、经过良好测试的协议,它是在UDP之上编写的。基本上它的可靠的UDP支持P2P连接,并专门针对高性能数据传输进行了优化。

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

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

票数 1
EN

Stack Overflow用户

发布于 2013-07-07 12:37:36

我建议在两个对等点之间使用服务器,即使服务器不是你的- Google Drive或Dropbox?

票数 0
EN

Stack Overflow用户

发布于 2013-07-07 12:43:03

您是否尝试过使用任何STUN方法?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17509301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档