2013-03-08 81 views
4

首先:我並不完全確定這是一個正確的地方,但我認爲這個問題更適合超級用戶或服務器故障,因爲這是一個來自程序員的觀點:我認爲更多的程序員可能有同樣的問題(儘管我找不到這個具體的問題!)。通過互聯網發送文件的可靠方法

我想在我的程序中有一個功能,允許用戶將文件發送給「朋友」。你可以通過用戶名找到朋友:這一切都通過一個服務器,可以提供朋友的IP地址。 我想用tcp連接發送文件。然而,當一方(或兩方)在NAT後面時,這變得困難。解決這個問題的最好方法是什麼?我聽說可以通過服務器發送內容,但我寧願直接發送所有內容,以防止服務器開銷。

我聽說過一種叫做打孔的技術,但是它的實現相當複雜,而且不是100%可靠的。我可以使用UDP並實施一些方案來提高可靠性,但這對我來說似乎有點複雜。我知道Skype,Bittorrent和其他很多程序都是類似的東西(但我不知道具體細節,他們使用哪種協議,如果他們使用打孔等)。

我仔細研究了一下FTP,直到我意識到這只是一個使用TCP的協議,所以我應該使用TCP hole punching來讓這項工作...無論如何,我希望有人可以給我一些建議這:) :)

回答

2

如果你不想讓數據通過服務器,我不知道除了以前選擇的端口TCP Hole Punching或簡單Port forwarding以外的其他方法。

+0

太糟糕了。那就試試吧。謝謝@ – Ruben 2013-03-15 20:22:37