# HG changeset patch # User oc # Date 1403862649 -32400 # Node ID ced24de3f2c58e53ca681e66432801e0383ab06d # Parent 70af0b1b88d205499962d285e5adf5542055e3a1 get network interfaces. diff -r 70af0b1b88d2 -r ced24de3f2c5 src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java Fri Jun 27 17:20:24 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java Fri Jun 27 18:50:49 2014 +0900 @@ -2,11 +2,18 @@ import java.io.IOException; import java.net.BindException; +import java.net.InetAddress; +import java.net.InterfaceAddress; +import java.net.NetworkInterface; import java.net.ServerSocket; import java.net.Socket; +import java.net.SocketAddress; +import java.net.SocketException; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.util.Enumeration; +import java.util.HashMap; import java.util.LinkedList; import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.DataFormatException; @@ -58,6 +65,7 @@ private boolean hasViewer = false; private boolean reconnecting; private short reconnectingId; // Change Server Request to id's node VNC server + private HashMap interfaces = new HashMap(); public MyRfbProto() { @@ -276,6 +284,7 @@ servSock = new ServerSocket(port); acceptPort = port; myAddress = "127.0.0.1"; + getNetworkInterfaces(); break; } catch (BindException e) { port++; @@ -687,5 +696,20 @@ return reconnectingId; } + public void getNetworkInterfaces() throws SocketException { + for (Enumeration e = NetworkInterface.getNetworkInterfaces(); e.hasMoreElements();) { + NetworkInterface ni; + ni = e.nextElement(); + if (ni.isUp() && ni.supportsMulticast() && !ni.isLoopback()) { + addNetworkInterface(ni, null); + System.out.println("Interfaces :" + ni.getName()); + } + } + } + + private void addNetworkInterface(NetworkInterface ni, TreeManagement treeManager) { + interfaces.put(ni, treeManager); + } + }