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



首先:我不确定这是一个正确的问题,但我认为这个问题在这里比在超级用户或服务器故障上更适合,因为这是一个程序员的角度的问题:我想更多的程序员可能有同样的问题(尽管我找不到这个特定的问题!)

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

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

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

如果您不想让数据通过服务器,我不知道除了TCP穿孔或简单的端口转发之前选择的端口之外的其他方法。

相关内容

  • 没有找到相关文章

最新更新