请教高手关于控制传输流量带宽的方法,最好控制到字节/秒,大体思路就可以。
比如说,像“蚂蚁”或者BT软件那样能够平滑控制流量带宽,应该如何实现?
我以前做过一些不限速度的多播传输,都是使用最大速度,或者通过源来控制速度,我来转发,如今我要从源开始自己完成流量控制,我设想了这样两种方法:1,首先制作“微小粒子流量操作”,比如说粒子传输为每125ms发送若干字节,因为字节数很小,所以会非常准确,将粒子设置得足够小并控制粒子的频率就能很精确的控制流量速度,(一开始有人说先测试出最大速度,然后用“睡”的方法,我觉得不太好,因为最大速度并不是很准确,它取决于当时的网络环境等多方面因素,另外如果睡得频率和长度控制的不好,流量计上就会显示出波浪线而不是平滑的直线);2,测试出最稳定的最大速度(已定好socket buffer),然后计算出不同速度的buffer值,后者方法和前者类似,只不过一个是固定buffer,调节粒子频率,另一个是固定粒子频率,调节粒子大小。如果同时控制两个条件感觉就累赘了。
这都是我瞎想的,还请高手们指点迷津啊