안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
Android 소켓을 공부하고 있습니다. 애뮬레이터로 테스트 중이고요.
서비스를 실행시켜서 ServerSocket을 구성하고, Accept() 대기 시키고,
Activity를 만들어서 버튼 누르면, Socket 를 구성하도록 작성하였습니다.
둘다 Thread로 만들었구요.
근데, Server 쪽에서는 accept() 구문에서 넘어가지 않고, Client에서는 New Socket(ip,port) 구문을
넘어가지 못하고 있습니다.
Exception 로그도 없습니다.
어떤것 때문에 그런지 모르겠습니다. 고수님들의 도움 부탁드립니다.
---------------서버단 소스-------------------
private static final int SERVER_FORT = 8002;
private class AcceptThread extends Thread {
@Override
public void run(){
log("new ServerSocket");
try {
mServerSocket = new ServerSocket(SERVER_FORT);
log("after new ServerSocket");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while(mStopServer == false){
try {
log("before accept");
Socket socket = mServerSocket.accept(); => 여기서 넘어가지 않음.
log("accept");
Message message = mHandler.obtainMessage(EVENT_ON_TEST);
mHandler.sendMessageDelayed(message, 0);
mConnThread = new ConnectedThread(socket);
mConnThread.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
-------------------------Client 단-------------------------------
private static final int SERVER_FORT = 8002;
private static final String SERVER_IP = "10.220.150.26";
private class AcceptThread extends Thread {
@Override
public void run() {
log("AcceptThread");
try {
//InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
log("open socket");
mSocket = new Socket(SERVER_IP, SERVER_FORT); //=> 여기서 넘어가지 않음. ㅠㅠ
log("after open socket");
mReadThread = new ReadThread(mSocket);
log("read new");
mWriteThread = new WriteThread(mSocket);
log("write new");
mReadThread.run();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
--------------------------------------------------
아시는분 꼭 답변 부탁드립니다




혹시 클라이언트 소스단에서는 에러가 전혀 안 나시는건가요??
예를 들어 호스트를 찾을 수 없다라던가 커넥션 타임아웃 같은거요..
혹시 모르니 서버단에 해당 포트가 방화벽 예외로 되어 있는지 확인해 보셔야 할꺼 같습니다