2011-03-15 222 views
1

我需要在.NET中以最快的方式將文件從一臺服務器傳輸到多個客戶端(使用互聯網)。 什麼是可以在.NET或VB.NET中使用的傳輸協議的不同類型,以便在很短的時間內發送文件? 我嘗試過使用FTP,但由於它需要身份驗證,握手等,所以速度很慢。 我想知道的是.NET中用於以服務器和多個客戶端之間最快的方式發送文件的選項。 我們可以使用像zeromq這樣的庫嗎?使用.NET的快速文件傳輸

+1

一個普通的['Socket'](http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx)?或者這對你來說是低層次的? – 2011-03-15 07:27:35

+1

我認爲這個問題的答案在很大程度上取決於你想發送幾個大文件還是很多小文件。 – 2011-03-15 07:52:52

+0

我會發送很多小文件。 – bharatm 2011-03-15 09:41:50

回答

2

您可以使用TCP連接或UDP連接。 UDP協議速度更快,但它非常不可靠,所以它適用於流式傳輸視頻,但不適用於發送稍後需要打開的文件。

但一個普通的TCP連接是不是比FTP快,至少在我的經驗。如果你想要可靠性,FTP是最好的。

+1

對於很少的大文件,FTP很快,對許多小文件來說不是。 – CodesInChaos 2011-03-15 08:27:43

0

首先,您應該決定是否需要像Ilya建議的TCP或UDP。 Atfer:

在.net中,您有機會將文件流複製到您的網絡流(服務器)中。並從你的網絡流到一個文件流(客戶端)。如果你有很多小文件,你可以嘗試將所有文​​件壓縮到一個包中,然後傳輸這個文件。

將包發送到客戶端後,您可以驗證校驗和(例如MD5)並對其進行解壓縮。