如何控制传输速度

lsgt 2004-11-17 09:31:08
C/S模式,TCP连接,我现在希望仅修改服务器端,来控制客户端上传下载的速度.应该怎么做?

QoS看了一下,好像不适用这个问题(没仔细看),刚搜贴子,看有人说QSocket可以控制调度本机的流量分配,QSocket是什么?
...全文
245 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
geland 2004-11-19
  • 打赏
  • 举报
回复
可以用定时器通知你呀,比SLEEP的消耗要小一些
sunhuiNO1 2004-11-19
  • 打赏
  • 举报
回复
当然有其他办法,可以一线程多连接发送文件,才用轮询所有用户,这样在等待的时候可以
给其他用户发送数据, 不过算法比较麻烦。
lsgt 2004-11-19
  • 打赏
  • 举报
回复
看起来只有用SLEEP等待?有没有别的(对效率影响最小的)办法?
gdy119 2004-11-17
  • 打赏
  • 举报
回复
QOS可以实现,具体怎么做,也没这方面的经验!
kingzai 2004-11-17
  • 打赏
  • 举报
回复
控制TCP连接可以用sleep方法,只要起到阻塞滑动窗口就可以控制速度了。
geland 2004-11-17
  • 打赏
  • 举报
回复
很好做,你记住你上一个包的大小和发送(接受)时间,那么根据你的传输速度,可以计算出下一个包该什么时候发送(接受),如果还没有到哪个时间就等待,到了再做下面的事情,应该就达到流量控制的目的了
lsgt 2004-11-17
  • 打赏
  • 举报
回复
滑动窗口用SOCKET能控制吗?

oyljerry 2004-11-17
  • 打赏
  • 举报
回复
可以参考一下tcp的流量控制
oyljerry 2004-11-17
  • 打赏
  • 举报
回复
延时发送滑动窗口,这样就可以调节客户端速度了
tangrh 2004-11-17
  • 打赏
  • 举报
回复
推荐楼主看windows核心编程第11章方案2,利用操作系统来控制发送速度,发快了,加一个定时器,时间到了os通过回调函数通知你,在回调里再执行后续发送
QOS没有深入研究,好象挺麻烦,而且感觉这个东西好象是用来保证带宽而非限制带宽,而且更多的是用于udp吧
sunhuiNO1 2004-11-17
  • 打赏
  • 举报
回复
一连接一线程很容易做,控制一下发送的数据包的长度,几个简单的
GetTickCount()分析一下发送时间
hjunxu 2004-11-17
  • 打赏
  • 举报
回复
可以定时的测一下当前网络速度,计算一下调用频率不知道可不可以。
lsgt 2004-11-17
  • 打赏
  • 举报
回复
除了sleep,还有没有别的意见?
hujun614 2004-11-17
  • 打赏
  • 举报
回复
没到时间以前,你不发送数据,看它客户端接什么,而且也不会断掉了。
每次发送数据,记个时间,下次再发的时候,看当前会话,上次是什么时间发的,会不会超过流量,如果超了,就不忙发送,睡一会儿再检测,再发送,不就OK了吗?
lsgt 2004-11-17
  • 打赏
  • 举报
回复
还有没有别的意见?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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