2013-02-20 57 views
6

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

回答

20

您可以使用工厂方法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); 
+0

您的意思是传入我的IP并取回对象? – Jim 2013-02-20 09:58:58

+0

@Jim:确实!我已经添加了一个关于如何使用它的例子。 – vstm 2013-02-20 10:00:26

+2

只是一个说明:默认的“积压”是50:D。 – 2014-08-09 10:46:28

相关问题