通过LAN发送数据的最快方法是什么?

时间:2014-03-16 10:15:06

标签: c# c++ sockets networking tcp

现在我使用Socket SendFile API,通过任何网络发送文件或部分文件。我可以在lan上更快地完成此过程吗?我知道像TeraCopy这样的程序,与使用CopyFile API(我认为)的Windows资源管理器应对相比,使得局域网上的应对文件更快(有人说速度提高了2倍)。我不知道他们是怎么做到的。你能建议我吗?

2 个答案:

答案 0 :(得分:2)

您可以动态压缩数据,然后在通过网络发送数据后对其进行解压缩。

GZipStream很适合这类事情,并提供了基本的压缩/解压缩示例。

压缩当然会让您的CPU性能受到影响,但您必须传输更少的数据,从而缩短传输时间。这个库的好处是压缩适用于流。因此,您可以通过网络流式传输而无需等待整个文件进行压缩。

答案 1 :(得分:0)

加速文件复制的一种方法是通过UDP而不是TCP来完成。那么问题是实现错误检查(因为UDP不保证数据包完整地或按顺序到达)。

Windows资源管理器文件副本很慢,因为它会单独打开每个文件,复制它,然后关闭它(至少就我所知)。

您的问题并没有真正提供任何代码,因此有点难以及时回答#。