当前位置: 首页 > news >正文

基于生产-消费模式,使用Channel进行文件传输(Tcp方式)

Client端:

#region 多文件传输
public class FileMetadata
{public string FileName { get; set; }public long FileSize { get; set; }
}class Program
{const int PORT = 8888;const int BUFFER_SIZE = 60 * 1024 * 1024;//15s-50  25s-64 33s-32 27s-50 31s-40 25s-60const int MAX_CHANNEL_CAPACITY = 1000;static async Task Main(){Console.WriteLine($"Client ready to send file ...");Stopwatch stopwatch = new Stopwatch();stopwatch.Start();var folderPath = @"D:\cuda";//"D:\TestImage\imagesbaiyou";await SendFolderAsync(folderPath, "192.168.10.147");stopwatch.Stop();Console.WriteLine($"Client Transfer file need {TimeSpan.FromMilliseconds(stopwatch.ElapsedMilliseconds)} Milliseconds");Console.ReadKey();}static async Task SendFolderAsync(string folderPath, string server){using var client = new TcpClient();await client.ConnectAsync(server, PORT);using var stream = client.GetStream();int i = 1;foreach (var filePath in Directory.GetFiles(folderPath)){await SendFileAsync(filePath, stream);Console.WriteLine($"Send file {i++} ...");}}static async Task SendFileAsync(string filePath, NetworkStream st

相关文章:

  • Rocky Linux上安装Go
  • 66常用控件_QTableWidget的使用
  • Win11安装Dify
  • APM32微控制器键盘PCB设计实战教程
  • Scratch节日 | 拯救屈原 | 端午节
  • WPF的布局核心:网格布局(Grid)
  • 数学概念解释数据集(200条)收集分享,为AI智能体应用助力~
  • MVCC 原理与并发控制实现
  • 长安链智能合约命令解析(全集)
  • LeetCode 3373.连接两棵树后最大目标节点数目 II:脑筋急转弯+广度优先搜索(黑白染色法)
  • ArkUI(方舟UI框架)介绍
  • nacos服务注册
  • C语言编程--20.合并K个升序列表
  • React 编译器
  • React 第四十九节 Router中useNavigation的具体使用详解及注意事项
  • 项目更改权限后都被git标记为改变,怎么去除
  • 2025年渗透测试面试题总结-匿名[校招]安全研究员(SAST方向)(题目+回答)
  • Android bindservice绑定服务,并同步返回service对象的两个方法
  • docker网络相关内容详解
  • 品优购项目(HTML\CSS)
  • 上海网站公安备案/怎么做好网站方式推广
  • 长春建站培训/百度网盘官网
  • 网站建设三合一/国外免费建站网站
  • 网站维护工作是做啥/长春百度网站优化
  • iis服务器怎么部署php网站/推广平台app
  • 做外贸网站案例/seo技术教程网