socket multiple example data clients java tcp ip serversocket inetaddress

java - multiple - ¿Cómo puedo vincular serversocket con una IP específica?



socket tcp java (1)

Si tengo un String representa una dirección IP (IPv4 o IPv6), ¿cómo puedo crear un ServerSocket y vincularme a esta IP sin importar si el IP pasó, es IPv4 o IPv6?
Veo que hay un constructor: ServerSocket(int port, int backlog, InetAddress bindAddr) pero InetAddress no parece ofrecer ningún constructor y sus subclases tienen nombres específicos para IPv4 e IPv6.
Entonces, ¿cómo puedo unir el socket a la IP?


Puede usar el método de fábrica INetAddress.getByName . Descubrirá qué subclase usar. Por ejemplo:

InetAddress addr = InetAddress.getByName("127.0.0.1"); // or InetAddress addr = InetAddress.getByName("::1"); // and now you can pass it to your socket-constructor ServerSocket sock = new ServerSocket(1234, 50, addr);