드뎌 대망의 아이스크림 샌드위치가 갤럭시 s2에 업데이트가 되었습니다 . 두둥....
2.3.3 에서 4.0.3 으로 껑출 뛰었죠.
아. 그럼 앞으로 4.0.3버전으로 어플을 개발해야 하는 구나...
하고 아이스크림 샌드위치를 파먹고있었습니다.
제가 주로 느낀건 UI 변화가 두드러졌고요./..
하지만 갑자기 큰문제에 시달리게 되는데.....
소켓통신이 갑자기 먹통이 되어버렸습니다 ...ㄷㄷㄷㄷ
제가 코딩법이 이상했던지 이놈이 이상한지 말이지요...
즉 저는 2.3.3에서 했던 방식대로
휴대폰에서
try{
client = new Socket("접속할 서버의 아이피",접속할 포트번호);
edit.append("서버에 접속\n"); //edit창에 접속을 알리는 메시지.
Thread th = new Thread(this);
th.start(); //통신에 관련된 쓰레드 실행.
}catch(Exception e){
edit.append("접속에 실패했다...왜?\n");
//접속에 실패했을시 알리는 메시지
}
이런 식으로 통신을 구현하고.
안드로이드 메니퍼스트에도
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 놈을 추가했더랬죠.
그리고 통신을 받는 쪽 서버에서
try {
ServerSocket serverSocket = new ServerSocket(받는 포트번호);
MultiServerThread mst = null;
while(! isStop) {
System.out.println("접속전 ");
socket = serverSocket.accept();//클라이언트별 소켓 생성
System.out.println("접속후");
System.out.println(socket.getInetAddress() + " 가 접속\n ");
}//while
} catch (IOException e) {
e.printStackTrace();
}
이런 식으로 받아 오게되었습니다.
여기에서 중요 질문은
1. 2.3.3 하고 또같은 방식으로 통신을 했는데. 4.0.3에서는 접속에 실패했다라고(안드로이드 클라이언트에서
예외처리가 되어버리더군요 ㅠㅠ) 뜰까요..??
2. 아니면 제가 지금 헛다리를 집고 코딩을 실수해서 4.0.3 소켓 통신에 실패를 하고있는 것일까요 ㅠㅠ??
혹시 같은 문제가 생기시는 분들 있을까해서 질문을 달아봄니다...
테스트 환경은 4.0.3 에뮬레이터와 2.3.3 에뮬레이터와 갤럭시s2에서 수행하였고 다른 환경값은 주지않았습니다.




4.0올라가고부터 메인스레드에서 http통신은 사용하지 못하게 됬습니다. 그래서 기존에 인터넷에 돌아다니는 http예제들은 전부 스레드 하나를 돌려서 그안에서 돌려야하죠...