2013-02-20 56 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

相關問題