안녕하세요  ^^ 정말 오래간만에 글을 올리네요 ~

이번에 다시 안드로이드 개발하면서 질문을 올립니다.

현재 소켓 통신 이용해서 PC를 서버로 두고 안드로이드를 클라이언트로 하여 접속을 시도 중입니다.

public class TCPClient implements Runnable {
    public void run() {
         try {
          // 서버의 주소를 로컬호스트라고 127.0.0.1로 하는 삽질은 하지말것 -_-;
          InetAddress serverAddr = InetAddress.getByName("211.189.20.122");
  
          Log.d("TCP", "C: Connecting...");
                  Socket socket = new Socket(serverAddr, 4444);

          String message = "Hello from Client";
       try {
       Log.d("TCP", "C: Sending: '" + message + "'");
       PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
       
       out.println(message);
       Log.d("TCP", "C: Sent.");
             Log.d("TCP", "C: Done.");
       
             } catch(Exception e) {
                Log.e("TCP", "S: Error", e);
        } finally {
          socket.close();
        }
         } catch (Exception e) {
              Log.e("TCP", "C: Error", e);
         }
    }
}


서버는 자바로 구현하였습니다. (자바 대 자바 통신은 무리 없이 잘 되는데 자바 대 안드로이드 에뮬레이터 통신은 잘 되지 않고 있습니다.)

에러 코드는 다음과 같습니다.

C:Connection
C: Error
java.net.SocketException: Permission denied(mabe missing INTERNET permission)
   at org.apache.harmony luni.platform.OSNetworkSystem.createSocketImple(Native Method)
...
...
..
..
at java.lang.Thread.run(Thread.java:)

입니다.


코드 상의 문제는 없는 것 같은데요.. 혹시 permission이라는 단어가 걸려서. SocketPermission쪽을 보고 있습니다.

답변 부탁드립니다.