如何将serversocket绑定到特定的IP?

Jim*_*Jim 9 java ip tcp serversocket inetaddress

如果我有一个String代表IP地址(IPv4或IPv6)的话,我怎么能创建ServerSocket并绑定到这个IP而不关心IP是否传入,是IPv4还是IPv6?
我看到有一个构造函数:ServerSocket(int port, int backlog, InetAddress bindAddr)InetAddress似乎没有提供任何构造函数,它的子类具有特定于IPv4和IPv6的名称.
那么如何将套接字绑定到IP呢?

vst*_*stm 28

您可以使用工厂方法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);
Run Code Online (Sandbox Code Playgroud)

  • 只是注意:默认的'积压'是50:D. (3认同)
  • 另一个注意事项:使用`0`作为积压将使用默认值 (2认同)