Escuchar en un mismo puerto desde distintas IP's (Java + GNU/Linux)
December 31st, 2007 by BusindreDe nuestro amigo Andrés González mostramos una forma de poder escuchar con dos ips distintas un mismo puerto. El truco está en usar una ip distinta para cada proceso. Por ejemplo, si ejecutamos:
#ifconfig eht0:0 192.168.1.1
#ifconfig eht0:1 192.168.1.2
Tendremos dos ip's virtuales, a parte de la que ya tenga la máquina.
Si ejecutamos el siguiente código java:
InetAddress ip2 = InetAddress.getByName("192.168.1.2");
ServerSocket ss1 = new ServerSocket(14000,0,ip1);
ServerSocket ss2 = new ServerSocket(14000,0,ip2);
Tendremos dos servidores escuchando en el puerto 14000, cada uno en una
ip distinta. Podemos ejecutar en una consola:
#telnet 192.168.1.1 14000
Trying 192.168.0.211...
Connected to 192.168.0.211.
Escape character is '^]'.
Y en otra consola:
#telnet 192.168.1.2 14000
Trying 192.168.0.211...
Connected to 192.168.0.211.
Escape character is '^]'.
También he probado a arrancar dos mysql's sobre el mismo puerto y distinta ip virtual y funciona.
Posted in How To |