Limitador de velocidad

Hernán Martínez Foffani hernan en orgmf.com.ar
Mie Abr 27 19:20:43 CEST 2005


> es una clase asyncore.dispatcher vamos un servidor que acepta sockets
> de entrada.
>
> y para envia utilizo sockets.
>
> deseo poder limitar la velocidad de envio y recepcion, vamos que no se
> ponga a enviar a toda ostia y me joda ancho de banda para poder bajar.
>
> estoy haciendo un p2p propio y como es normal tendre que limitar el
> ancho de banda a peticion del usuario.

si lo que quieres es limitar el ancho de banda usado por TU
aplicacion entiendo que bastaría con calcular a cada instante
la velocidad de transferencia y poner o quitar "sleeps" segun
lo necesites.
si la limitación llega a ser muy baja deberás implementar
KEEP_ALIVEs para que no se cierre el caño (cómo hacerlo
dependerá del diseño de tu protocolo: repitiendo acks, etc.)

si lo que quieres es limitar el ancho de banda usado por TODOS
los procesos de un ordenador, o mejor dicho, por OTROS distintos
al de tu aplicacion, entiendo que no se podría hacer en forma
portable (asumo que tu protocolo no esta sobre HTTP.)
tendrías que colgarte de algun hook en la winsock si estás en Windows,
o quizás recompilar el kernel en los *nix de los viejos (yo hace rato
que perdí el rastro de los últimos linux.)

-H.




Más información sobre la lista de distribución Python-es