通过互联网发送文件的可靠方式

时间:2013-03-08 17:26:21

标签: file tcp udp ip transfer

首先:我不是绝对肯定这是一个正确的问题,但我认为这个问题更适合超级用户或服务器故障,因为从程序员的角度来看这是一个问题:我想更多的程序员可能有同样的问题(虽然我找不到这个具体的问题!)。

我想在我的程序中有一个功能,允许用户将文件发送给“朋友”。您可以通过用户名找到朋友:这一切都通过服务器提供,该服务器可以提供朋友的IP地址。 我想使用tcp连接发送文件。然而,当一方(或两方)在NAT后面时,这变得困难。解决这个问题的最佳方法是什么?我听说可以通过服务器发送内容,但我宁愿直接发送所有内容,以防止服务器开销。

我听说过一种叫做打孔的技术,但它实现起来相当复杂,而且不是100%可靠。我可以使用UDP并实现一些方案来提高可靠性,但这对我来说似乎有点复杂。我知道skype,bittorrent和很多其他程序做类似的事情(但我不知道具体情况,他们使用哪种协议,如果他们使用打孔等。)。

我看了一下FTP,直到我意识到这只是一个使用TCP的协议,所以我应该使用TCP打孔来让这个工作...无论如何,我希望有人可以给我一些建议:)

1 个答案:

答案 0 :(得分:2)

如果您不希望数据通过服务器,我不知道除TCP Hole Punching之外的其他方法或之前选择的端口的简单Port forwarding