c#开发的程序中如何控制上行速度?
发布网友
发布时间:2022-05-05 03:15
我来回答
共5个回答
热心网友
时间:2022-06-28 20:53
FileStream inFile = new FileStream("文件路径",FileMode.Open, FileAccess.Read);int speedTime = 10240; // 10KB 每秒int count = (int)inFile.Length;Stopwatch stopwatch = new Stopwatch();for (int i = speedTime ; i < count; i += speedTime ){ stopwatch.Reset();
stopwatch.Start(); //开始计时 if ((i + speedTime ) <= count)
{ byte[] binaryData = new byte[speedTime ]; //创建最大上传数组
inFile.Position = i - speedTime ;
inFile.Read(binaryData, 0, binaryData.Length); wm.UploadImage(binaryData);//每次上传 指定大小的数据 } else //为防止最后一次上传时文件大小可能达不到 speedTime 的大小 而出现异常 { byte[] binaryData = new byte[count - (i - speedTime )];
inFile.Position = i - speedTime ;
inFile.Read(binaryData, 0, binaryData.Length); wm.UploadImage(binaryData); } if(1000 - stopwatch.ElapsedMilliseconds > 0) //如果上传时间不足一秒话,暂停这个时间差 Thread.Sleep(1000 - stopwatch.ElapsedMilliseconds );}
热心网友
时间:2022-06-28 20:53
不知道你的通信协议,还有你的网络底层用的是什么?如果是socket可以通过设置timeout来设置数据的发送延时来控制发送速度,可以在程序中动态调节
热心网友
时间:2022-06-28 20:54
代码解决是很高端的技术,有软件可以解决,比如360,但也不是那么理想。360都很难解决
热心网友
时间:2022-06-28 20:55
分批并同时间隔发送,应该可以有效解决你的宽带占用问题。
热心网友
时间:2022-06-28 20:55
可以用sleep 控制