[请教] Socket传输中的限速问题

bosses 2004-11-03 09:13:38
我在做一个可以限制速度的文件传输软件,可是限速的问题一直解决不了。初步的想法是,单线程的情况下,如果发现速度过快,就每隔一段时间sleep一下;但是在多线程的情况下,这个实现起来想不清楚怎样做。
请教一下大家,一般的Socket传输如何限速,在单线程和多线程的情况下。如果能够详细解释原理再好不过,如果没有时间,点明思路和原理即可,我自己再去研究。谢谢先!
...全文
423 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shakira008 2004-11-04
  • 打赏
  • 举报
回复
study
sunhuiNO1 2004-11-04
  • 打赏
  • 举报
回复
自己控制发送数据,如果是单线程的话很好处理,如果发现发送过快就sleep一下,如果
是完成端口或者重叠I/O就比较麻烦,需要自己用一定算法控制。
kingzai 2004-11-04
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/1439/1439148.xml?temp=.5467951
bosses 2004-11-03
  • 打赏
  • 举报
回复
首先谢谢大家。
看了大家的回复,看起来通过sleep的方法来限速确实是可行的了。不知道这是不是限速的标准方法,象ftp之类的软件限速都是采用什么原理呢?也是sleep呢,还是有其他更好的方法?
netsys2 2004-11-03
  • 打赏
  • 举报
回复
记录开始时间。

每次发送数据时,都把发送数累加(不管是单线程还是多线程),

然后专门弄个TIMER或者线程来检查在一定时间内是否发送数量超过标准,是则通知各线程SLEEP一定时间。
ms44 2004-11-03
  • 打赏
  • 举报
回复
多线程下不可以实现THREAD .SLEEP么?
tccsdn 2004-11-03
  • 打赏
  • 举报
回复
bosses 2004-11-03
  • 打赏
  • 举报
回复
OK,感谢大家的帮忙,我去研究研究QoS先!如果还有什么高见,快快发表啊~~
DentistryDoctor 2004-11-03
  • 打赏
  • 举报
回复
通过Sleep限速度不是很严格,因为其有点像负反馈。比较严格的是QoS.

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧