안녕하세요 졸업 작품으로 안드로이드 관련된걸 제작하고 있는 대학생입니다..

다름이 아니라 우선 현재 안드로이드 - PC 와 TCP/IP 소켓 통신을  하고있는데요,


PC 를 서버로 두고, 안드로이드 를 클라이언트로 두어서 통신하면 잘됩니다.

PC 에서 우선
 ServerSocket serverSocket = new ServerSocket(ServerPort);
 Socket client = serverSocket.accept();

을 통해 받을 준비를 하구요

안드로이드에서 
 InetAddress serverAddr = InetAddress.getByName(serverIP);
Socket socket = new Socket(serverAddr, serverPort);

를 수행하여 서로 연결이 되고, Data도 서로 잘 주고받습니다.

문제는 이와 반대되는 상황을 만들어야 된다는 것인데요, ( 즉 안드로이드가 서버, PC 가 클라이언트 가 되어야 합니다)

제가 짠 코드에서는

우선 안드로이드 (서버) 에서
ServerSocket serverSocket = new ServerSocket(4444);
Socket client = serverSocket.accept();
를 통해서, 4444번 포트를 열고 클라이언트 접속을 기다립니다.

PC 에서
InetAddress serverAddr = InetAddress.getByName(ServerIP);
Socket socket = new Socket(serverAddr, 4444);
를 통해서 4444번 포트로 접속을 시도합니다.

분명 단순히 PC와 안드로이드 입장을 바꿔서 잘 코딩한거같은데,  저 연결하는 부분에서 접속이 안되고 다음으로 넘어가지않습니다.

오랜 시간이 흐른뒤 catch(Exception e) 를 통해 입력 해놓은 에러메시지가 출력 되네요.


제가 어디서부터 생각을 잘못하고있는건지 좀 도와주세요 ... 이거 못하면 졸업작품 시작도 못하는데...

혹시 안드로이드에서 서버역할을 하는게 애시당초부터 불가능 한것일까요?
한수 부탁드립니다!!!!