socket服务器是如何完成"固定速率"发送数据的??

redex 2007-07-16 02:40:39
比如, 那些流媒体服务器, 每秒钟匀速向客户发送200KB的数据

它是如何做到的呢??
...全文
482 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
redex 2007-08-28
  • 打赏
  • 举报
回复
想精确控制是不可能的

这个确实, 但用timer好象不太合适吧??
vocanicy 2007-08-27
  • 打赏
  • 举报
回复
想精确控制是不可能的

累计发送字节S和累计时间T,求平均速度V=S/T,如果速度超过目标速度就延迟发送,反之,就直接发送
Cricketol 2007-08-27
  • 打赏
  • 举报
回复
看了以上的讨论突然来个想法
如果前1秒的数据未发送完呢?
紧接着的下一秒传输会不会造成拥挤?
q44072429 2007-08-27
  • 打赏
  • 举报
回复
40毫秒 投递 一次 就可以
q44072429 2007-08-27
  • 打赏
  • 举报
回复
比如说 你 要发送 100K/S


你投递的Send请求是 每次 4K
那么你 100/4 等于 25

也就是 1秒投递25次 Send

那你可以用一个Timer
ccppfan 2007-08-25
  • 打赏
  • 举报
回复
mark
WinEggDrop 2007-08-25
  • 打赏
  • 举报
回复
这只是很简单的数学计算方法.
例如限制是每秒发送速度是100KB/S(最大的发送速率),如果向一个客户发送数据,在0.7秒内就发送了100KB的数据,那么在剩下的0.3秒内,就不能再向这客户发送任何数据,要等这0.3过了后,再向这客户发送数据,每秒间隔都这样检测就行.
redex 2007-08-24
  • 打赏
  • 举报
回复
定时器的间隔设为多长时间呢??
yangshu4836 2007-08-24
  • 打赏
  • 举报
回复
设置一个定时器,在一个时间段只发一定流量的数据。。。
redex 2007-08-24
  • 打赏
  • 举报
回复
根据时间计算就是了 ---如何根据时间计算??
cmoth 2007-08-24
  • 打赏
  • 举报
回复
好象danscort2000(danscort.yu) 说的已经很具体了,再具体就要写代码了,呵呵。
redex 2007-08-24
  • 打赏
  • 举报
回复
UP again.
redex 2007-07-17
  • 打赏
  • 举报
回复
UP, 能不能说的具体一点
danscort2000 2007-07-16
  • 打赏
  • 举报
回复
很简单的
使用非阻塞模式,由发送端发送,根据时间计算就是了
loverx 2007-07-16
  • 打赏
  • 举报
回复
use a timer ~~~~0~~~~~
redex 2007-07-16
  • 打赏
  • 举报
回复
DentistryDoctor兄:

问题是"如何控制速度"呢??? 你在发送时如何知道速度呢?
DentistryDoctor 2007-07-16
  • 打赏
  • 举报
回复
直接在发送端控制速度就是了

18,356

社区成员

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

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