안드로이드를 서버로 사용하려면 꼭 고정 IP를 사용해야 하나요?


자바에서 쓰던코드를 가져와서

스레드넣고 UI접근 하나도없는상태입니다.


======================================================== IP를 얻는 코드

  

    static String getLocalIpAddress()

    {

     final String IP_NONE = "N/A";

     final String WIFI_DEVICE_PREFIX = "eth";

     

     String LocalIP = IP_NONE;

     try {

            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {

                NetworkInterface intf = en.nextElement();           

                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {

                    InetAddress inetAddress = enumIpAddr.nextElement();

                    if (!inetAddress.isLoopbackAddress()) {

                     if( LocalIP.equals(IP_NONE) )

                        LocalIP = inetAddress.getHostAddress().toString();

                     else if( intf.getName().startsWith(WIFI_DEVICE_PREFIX) )

                        LocalIP = inetAddress.getHostAddress().toString();

                    }

                }

            }

        } catch (SocketException e) {

            Log.e("DEBUG_TAG", "getLocalIpAddress Exception:"+e.toString());

        }

        return LocalIP;

     

   

    }

    


========================

이 코드를 가지고 IP 를 얻어쓰는데요 

클라이언트 쪽에서 접속이 안됩니다.


Socket socket = new Socket( IP , port);

이부분에서 계속적으로 멈춘후에 블락이걸리고 

한참지난후에 TimeOutException이 발생합니다.


IP가 잘못되서 그런거같은데. 고정으로 꼭 써야 하는건지 모르겟습니다.


만약 에뮬레이터를 서버로 사용한다면 에뮬레이터에서 IP를 획득해서 써야하는건가요? 아니면 

에뮬레이터가 있는 컴퓨터의 IP를 사용해야하는건가요?. 어떤걸 사용한다면 , 그걸 유동으로 써도되는지

아니면 꼭 고정이어야 하는지 알려주세여ㅛ ㅜㅜ