안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 소켓 통신을 하는데
제 폰은 안드로이드 아이스크림 센드위치(4.0.4)고 3G망을 사용하고
친구폰은 안드로이드 프로요 2.3.6 고 4G망을 사용합니다.
소켓 통신을 할때 사설IP망을 우선 연습하려고 사설망 IP를 연결하고
3G 4G로 연결하니 사설망이라 통신 못한다는것을 알고
wifi로 잡아 소켓통신을 연결했습니다.
근데 제 폰은 연결이 잘되는데
친구폰은 wifi로 연결해도 연결이 되지 않는걸 발견했습니다.
이전에 제 폰으로 개발할때 정상적으로 코드를 작성했는데도 접속이 안되는걸 발견하여
정상적으로 연결해도 되지 않는게 이상하여 찾아보니
몇 버젼부터인지 모르겠는데 소켓통신을 접속하는데 있어서
바뀐점이 있다고 하여 그 부분을 수정 하여 접속하니 프로그램이 돌아가는 걸 볼 수 있었습니다.
아무래도 그 부분이 원인이 아닌가 싶은데
그게 버전이 아이스크림센드위치 버전 부터인지 확인할 길이 없어서... 이렇게 글을 써봅니다.
(제가 알기론 2.2버전 이상부터는 이 써야 통신이 가능하다고 알고 있었는데... 2.3버전인 친구 폰도 접속이 안되네요..)
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
위에 두 줄이 제가 소켓통신이 안되어 추가하게 된 부분입니다.
제가 생각하는 부분이 맞는건지... 그리고 저 부분이 왜 생기게 됐으며 뭘 의미하는지 ..솔직히 궁금하기도 해서 질문 올립니다.
답변좀 부탁드립니다
아.. 이부분을 주석 처리하니 제대로 돌아가는걸 확인했습니다.
2.3버전 이상부터는 이 부분이 추가가 되어야 한다는걸 알 수 있었는데...솔직히
이부분이 왜 필요한거며 뭘 의미하고, 왜 이부분이 생기게 됬는지..
저번에 봤을땐 영어로 되 있어서 자세하게 알지 못했거든요...
누가 간단하게 설명좀 해주시면 안되겠습니까 ?ㅠㅠㅎ