日期:2014-05-20  浏览次数:21087 次

发送UDP包的时候如何控制网速
机器接的是千兆网络,在速度不超过千兆的情况下如何控制其发送速率

想实现一个程序,给个参数1的话就以1M/s的速度发送数据,10的话就以10M/s的速度发数据。

现在只能想到发一个包sleep一下,然后慢慢的测sleep多长时间

谁知道什么好点的方法么?

------解决方案--------------------
一般是总量控制,方式很多,其中一种方式是根据时间流逝情况来决定发送数据量:
1、接收到数据包后,记录当前时间->T1;
2、然后发送比如 8K 数据,然后sleep一段时间;
3、醒来后记录当前时间->T2;
4、计算T2距离T1多久了,这段时间内应该发送的数据量是多少;
2、然后发送数据 N,然后再sleep一段时间;
3、醒来后记录当前时间->T3;
4、计算T3距离T2多久了,这段时间内应该发送的数据量是多少;
以上循环。