앱에서 Tcp server를 구동하려고 합니다.(ServerSocket)

 

그런데 외부에서 접속이 되질않고 time out이 걸리는군요

 

PC(server) -> Android(client) 로 상황에서는 잘 돌아 갑니다.

 

 

반대인 Android(server) -> PC(client)  상황에선

 

에뮬레이터로 구동하면 잘되는데

 

실제 폰에서는 time out이 걸립니다.

 

 

아래는 안드로이드에서 IP를 구하는 소스입니다.

------------------------------------------------------------------------------------------------------------------------------------------------

 public static String getLocalIpAddress() {
    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() && inetAddress instanceof Inet4Address) {
                    return inetAddress.getHostAddress();
                }
            }
        }
    } catch (SocketException ex) {
        ex.printStackTrace();
    }
    return null;
}

------------------------------------------------------------------------------------------------------------------------------------------------

 

위코드의 결과로 IP가 104.217.252.9가 나오고요 포트는 6000번으로 설정했습니다.

 

잘되지않아 공인아이피를 찾아본결과 175.223.2.143로 나오지만 이역시 마찬가지로 되질않습니다.

 

실제폰에서 IP를 가져오는것이 잘못된것인지

 

아님 포트 포워딩을 해야될것같은데 방법을 모르겠네요

 

 

너무 답답하여 실제 Web Server 앱들을 깔아보았지만

 

이 앱들도 외부접속에 대한 동작을 못하고 있습니다

 

루팅없이 TCP server를 구현할 방법이 없을까요??

 

몇일밤을세고 있습니다. 고수님들 고견 부탁드리고

 

새해 복많이 받으시길 바랍니다.