原帖由 musics 于 2008-6-30 13:28 发表
EPOLL或KQUEUE模式下如何对SOCKET进行限速,比如针对某个用户的连接的最高速度2MB/s,不是那种每个连接用一个线程或进程来处理延时的
原帖由 system888net 于 2008-6-30 23:38 发表
可考虑先用如下简单的方法:
1.程序里计算每个socket的发送速度.
2.每次发送前判断此时发送是否超过上限制,若会超过则延迟n个时间单位,不超过则直接发送.
实现后再用其它较复杂的方法.
原帖由 musics 于 2008-7-1 17:49 发表
我目前的想法就是有数据到来时检查是否需要暂停,如果需要就从epol句柄集里边删除,同时计算出需要暂时的时长,加入暂停的列表中,然后找出接下来需要暂停的时间最短的socket,如果不符合处理条件就继续回到epoll等待 ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |