几乎所有的文件传输软件,如 [NetSupport, Radmin, PcAnyWhere..] 以及我在我的应用程序中使用的不同代码,当您发送大量小于 1kb的小文件时,它会减慢传输速度,例如游戏文件夹很多文件。
例如在 LAN(以太网 CAT5 电缆)上,我发送一个文件,比如说一个视频,传输速率在 2MB 到 9MB 之间,
但是当我发送一个包含大量文件的游戏文件夹时,传输速率约为 300kb- 800kb
我猜这是因为发送文件的方式:
但是当您在网络上的共享文件夹上使用常规窗口[复制粘贴]时,发送文件夹的传输速度总是像发送单个文件一样快。
所以我尝试使用 [WCF service c# 4.0] 开发一个文件传输应用程序,该应用程序将使用 LAN 上可用的最大速度,我正在考虑这种方式:
Get all files from the folder.
if(FileSize<1 MB)
{
Create additional thread to send;
SendFile(FilePath);
}
else
{
Wait for the large file to be sent. // fileSize>1MB
}
void SendFile(string path) // a regular single file send.
{
SendFileInfo;
Open Socket and wait for server application to connect;
SendFileBytes;
Dispose;
}
但我对使用多个套接字进行文件传输感到困惑,因为这将使用更多端口和更多时间(侦听和接受延迟)。
那么这样做是个好主意吗?
需要解释是否可以做,如何做,比 tcp 更好的协议,这意味着。
提前致谢。