File 通过internet发送文件的可靠方法

File 通过internet发送文件的可靠方法,file,tcp,udp,ip,transfer,File,Tcp,Udp,Ip,Transfer,首先:我不能绝对肯定这是一个正确的问题,但我认为这个问题比超级用户或服务器故障更适合这里,因为这是一个程序员角度的问题:我想更多的程序员可能会有同样的问题(尽管我找不到这个特定的问题!) 我想在我的程序中有一个功能,允许用户向“朋友”发送文件。你可以通过一个用户名找到朋友:这一切都通过一个可以提供朋友IP地址的服务器进行。 我想使用tcp连接发送文件。然而,当一方(或双方)支持NAT时,这就变得很困难。解决这个问题的最好办法是什么?我听说可以通过服务器发送东西,但我宁愿直接发送所有东西,以防止服

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

我想在我的程序中有一个功能,允许用户向“朋友”发送文件。你可以通过一个用户名找到朋友:这一切都通过一个可以提供朋友IP地址的服务器进行。 我想使用tcp连接发送文件。然而,当一方(或双方)支持NAT时,这就变得很困难。解决这个问题的最好办法是什么?我听说可以通过服务器发送东西,但我宁愿直接发送所有东西,以防止服务器开销

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


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

如果你不想让数据通过服务器,除了以前选择的端口或简单的端口,我不知道其他方法。

太糟糕了。那我就试试。谢谢@