如果我在Linux系統上有2個公共IP地址,他們會被表示爲虛擬網絡接口名稱。這就是Linode對此所說的。使用每個Java程序使用哪個網絡接口?
Linode有一個網絡接口eth0。當添加IP地址時,您可以創建名爲eth0:1,eth0:2 ... eth0:n的虛擬網絡接口。
我需要在同一個Linode上使用2個不同的Java應用程序,我希望他們每個人都使用不同的公共IP。我需要指定每個Java實例使用哪個網絡接口。這可能嗎?我正在使用Debian Linux。
如果我在Linux系統上有2個公共IP地址,他們會被表示爲虛擬網絡接口名稱。這就是Linode對此所說的。使用每個Java程序使用哪個網絡接口?
Linode有一個網絡接口eth0。當添加IP地址時,您可以創建名爲eth0:1,eth0:2 ... eth0:n的虛擬網絡接口。
我需要在同一個Linode上使用2個不同的Java應用程序,我希望他們每個人都使用不同的公共IP。我需要指定每個Java實例使用哪個網絡接口。這可能嗎?我正在使用Debian Linux。
您可以使用ServerSocket(int port, int backlog, InetAddress address)
構造函數創建綁定到特定IP地址(第3個參數)的服務器套接字。地址決定了將要使用的網絡接口。
例如:
String ip = "192.168.1.54"; // read from config file
int port = 9090; // likewise
InetAddress addr = InetAddress.getByName(ip);
ServerSocket serverSocket = new ServerSocket(port, -1, addr);
如果你有兩個不同的應用程序和兩個不同的IP地址,你很可能需要一個應用程序一直使用一個IP,和其他應用程序總是使用另一種。爲了確保這種關聯不會改變,你應該存儲每個應用程序應該在配置文件或類似的東西中使用的IP地址。
[Network Inteface](http://docs.oracle.com/javase/7/docs/api/java/net/NetworkInterface.html)類可讓您找出接口,他們的IP地址並檢查它們是否已啓動。 –
請參閱此枚舉網絡接口並檢查其多個IP地址http://stackoverflow.com/questions/11102108/how-to-get-all-network-interfaces-in-java-and-store-the-information -in-java-map?rq = 1 –