如果我有一个String
代表 IP 地址(IPv4 或 IPv6)我如何创建ServerSocket
并绑定到这个IP,而不关心传入的IP是IPv4还是IPv6?
我看到有一个构造函数:ServerSocket(int port, int backlog, InetAddress bindAddr)
but InetAddress
似乎没有提供任何构造函数,并且其子类具有特定于 IPv4 和 IPv6 的名称。
那么如何才能将socket绑定到IP呢?
您可以使用工厂方法INetAddress.getByName https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html#getByName-java.lang.String-。它会找出要使用哪个子类。例如:
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)