Primero de todo, mando un saludo para toda la gente de aquí y una enhorabuena para la gente encargada de este foro ya que soy nuevo por estos barrios
Bueno, mi problema es que me gustaría saber si en Java hay algun mecanismo por el cual puedas repartir tu ancho de banda entre numerosos hilos, los cuales, realizan conexiones a un host remoto determinado para verificar si tiene abierto un puerto. Cada hilo chequea independientemente si el puerto está abierto o no, finalizando si está abierto, y si está cerrado finalizará cuando caduque el timeout.
Mi problema es que tengo una conexión de 56kb y lanzo mi aplicación que comienza a crear hilos, los cuales, van conectando a hosts remotos diferentes en busca de un puerto abierto. Pues bien, limito el número máximo de hilos simultaneos a 20 y pongo un timeout de 2 segundos. Si ejecuto la aplicación con esta configuración bajo un servidor con una conexión ADSL la aplicación funciona perfectamente detectandome todos los hosts remotos con dicho puerto abierto, pero si ejecuto la aplicación en mi conexion 56kb no funciona, ya que no me detecta ningún host remoto que tenga dicho puerto abierto. Para que funcione en mi conexión de 56kb configuro la aplicación con un timeout de 2 segundos y limito el número máximo de hilos que se pueden ejecutar simultaneamente a 2, de esta forma me funciona correctamente pero es un poco lento comparado con la otra configuración.
Debido a esto, me gustaría saber si existe algo para saber que ancho de banda se tiene, y de esta forma pues poner una configuración determinada. Supongo que las aplicaciones como Nmap hacen programación multihilos y es efectiva se realice el escaneo desde una conexión de 56kb como en una ADSL pero ya no se si es mas lenta o más rápida según la conexión.
En fin, gracias de antemano y saludos.