안드로이드 개발 질문/답변
(글 수 45,052)
wifi가 켜진 상태에서 ConnectivityManager를 이용하여
startUsingNetworkFeature(int networkType, String feature) 함수의 인자로
TYPE_MOBILE, enable HIPRI 를 주어 3g 망도 동시에 활성화는
성공한것 같습니다..
그 상태에서 networkInterface 목록을 받아오면 두가지 다 목록에 나타나고
www.google.com으로 ping을 날려보면 둘다 답이 옵니다.
그 후 각각의 ip 주소들을 받아와서 bind() 함수로 각각의 인터페이스에 socket을
강제로 바인딩 시키고 connect()를 하려 하면 3g쪽에서 Socket timeout exception이
나면서 연결이 되지 않습니다.. 무엇이 문제일까요 ㅠㅠ
참고로 둘중 하나만 켜져있는 상태에서는 소켓 통신이 잘 이루어 집니다..
조언 부탁드립니다..
2011.12.17 00:29:13
음... 현재 80번 포트로 연결하려고 시도 하고 있습니다..
소켓을 열 때 바인딩하는 포트는 0번을 주어 자동으로 할당하게 하고
있구요..ㅠㅠ 조언이 필요합니다..




정확한 원인은 모르지만, 주서 듣기로
3G connection은 통신사 정책에 따라서 방화벽에 걸리기도 한답니다.
포트 번호가 몇인가요? ping이 정상동작한걸 보면,
3G 일때 특정 포트만 통신사 측에서 막아버리는게 아닌가 싶네요