Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Medir el ancho de banda de una conexión en tiempo real

Hola
Como dice el título, la idea es medir en tiempo real el ancho de banda de la conexión a internet para, según el estado en el que esté, hacer peticiones a servidores para descargar archivos o código fuente de páginas web.

Imagen

En la imagen pueden ver el ejemplo de un programa que hace lo que necesito. Mide el ancho de banda de mi conexión mientras descargo torrents, veo videos de youtube, etc. No confundir con medir la velocidad de mi conexión, eso ya se como hacerlo y no es lo mismo.

No duden en consultar cualquier cosa que necesiten, Gracias!!

agosto 1, 2014 | Registered Commenterloandoer

Creo que te refieres al consumo del ancho de banda, y no al ancho de banda en sí.
Lo que llamas "velocidad de conexión" es en realidad el ancho de banda de la conexión.

http://docstore.mik.ua/orelly/java-ent/dist/ch08_04.htm
http://stackoverflow.com/questions/8277346/java-bandwidth-monitoring

agosto 2, 2014 | Registered Commenterchoces

Buenas,

Aparte de lo que te comenta @choces respecto a tu confusión respecto a ancho de banda/consumo inmediato, lo que quieres conseguir no es en absoluto trivial, y menos en java.

Por desgracias, el ejemplo del primer link no te vales ya que lo que mide es el throughput de la propia aplicación java y no el de tu equipo.

Para ello tienes que poder consultar a la interfaz de red para que te de en todo momento el consumo de red que realiza. Para interactuar con la interfaz es necesario llamar a operaciones a bajo nivel, algo que no se puede realizar directamente en java. Por eso la única posibilidad es hacer llamadas JNI a una libreria de tu sistema operativo que lo haga.
Lo mas fácil es que utilices una libreria java que envuelva dichas llamadas nativas. Yo creo que lo podrías hacer con jNetPcap o bien con SNMP4J instalando el correspondiente servicio en windows.

http://jnetpcap.com/
http://www.snmp4j.org/index.html

Un saludo

agosto 2, 2014 | Unregistered CommenterUnoPorAhi