传输文件
定义
命名空间:TouchSocket.Dmtp.FileTransfer
程序集:TouchSocket.Dmtp.dll
程序集:TouchSocketPro.Dmtp.dll(多线程传输)
一、说明
文件传输是每个框架都需要的功能,也是检验一个框架性能的非常重要的指标。
本组件则是基于Dmtp,开辟了全双工对点文件传输。即,当客户端连接服务器以后,客户端可以向服务器请求、推送文件,服务器也能向客户端请求,推送文件。甚至,客户端之间,也可以互相请求,推送文件。
其特点包括:
- 全双工对点文件传输。即:客户端、服务器、其他客户端三者之间,可以互相推送、请求文件。
- 高性能、低GC。整个传输过程,将内存池用到极致,极大的减少不必要的GC。本地电脑实测传输速度达到1.2Gb/秒。
- 全平台支持。Windows、Android、Unity3D(除webgl)全部支持。
- 支持任意大小的文件传输(实测100Gb没有问题)。
- 支持断点续传。
- 支持传输限速。
- 支持文件多链路、多线程传输 。
二、支持插件
插件方法 | 功能 |
---|---|
IDmtpFileTransferringPlugin | 文件传输之前触发。仅在响应端有效。 |
IDmtpFileTransferredPlugin | 文件传输结束后可能触发,触发时不代表传输成功,具体状态查看e.Result 属性。 仅在响应端有效。 |
三、性能
可以看到,下图正在上传一个Window的系统镜像文件,大约4.2Gb,传输速度已达到800Mb/s,GC基本上没有释放,性能非常强悍(中间有稍微停顿,因为程序在获取文件MD5值)。
