使用.NET的快速文件传输
问题描述:
我需要在.NET中以最快的方式将文件从一台服务器传输到多个客户端(使用互联网)。 什么是可以在.NET或VB.NET中使用的传输协议的不同类型,以便在很短的时间内发送文件? 我尝试过使用FTP,但由于它需要身份验证,握手等,所以速度很慢。 我想知道的是.NET中用于以服务器和多个客户端之间最快的方式发送文件的选项。 我们可以使用像zeromq这样的库吗?使用.NET的快速文件传输
答
您可以使用TCP连接或UDP连接。 UDP协议速度更快,但它非常不可靠,所以它适用于流式传输视频,但不适用于发送稍后需要打开的文件。
但一个普通的TCP连接是不是比FTP快,至少在我的经验。如果你想要可靠性,FTP是最好的。
+1
对于很少的大文件,FTP很快,对许多小文件来说不是。 – CodesInChaos 2011-03-15 08:27:43
答
首先,您应该决定是否需要像Ilya建议的TCP或UDP。 Atfer:
在.net中,您有机会将文件流复制到您的网络流(服务器)中。并从你的网络流到一个文件流(客户端)。如果你有很多小文件,你可以尝试将所有文件压缩到一个包中,然后传输这个文件。
将包发送到客户端后,您可以验证校验和(例如MD5)并对其进行解压缩。
一个普通的['Socket'](http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx)?或者这对你来说是低层次的? – 2011-03-15 07:27:35
我认为这个问题的答案在很大程度上取决于你想发送几个大文件还是很多小文件。 – 2011-03-15 07:52:52
我会发送很多小文件。 – bharatm 2011-03-15 09:41:50