IPアドレス(IPv4またはIPv6)を表すString
がある場合、IPが渡されたかどうかを気にせずにServerSocket
を作成し、このIPにバインドするにはどうすればよいですか?IPv4またはIPv6ですか?
コンストラクターがあるようです:ServerSocket(int port, int backlog, InetAddress bindAddr)
しかし、InetAddress
はコンストラクターを提供していないようで、そのサブクラスにはIPv4とIPv6に固有の名前が付いています。
では、どうすればソケットをIPにバインドできますか?
ファクトリメソッドを使用できます INetAddress.getByName
。使用するサブクラスがわかります。例えば:
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);