티스토리 뷰

일주일 가까이 구글링과 네이버를 온통 뒤진 결과 그 원인의 종류는 다음과 같다.


1. 공유기 사용(사설IP 기반) 

 - IPTIME의 경우 아이피는 192로 시작하는 것이 디폴트이다. 사설(내부)아이피이기 때문에 공인(외부)아이피로 접속은 가능하지만,

공인아이피가 사설아이피를 할당 받은 컴퓨터로 접속하는 것은 공유기 포트포워딩이나 DMZ, 트윈아이피 설정 등을 통해서만 접속이 가능하다. (혹은 홀펀칭 기술 적용)

 - 하지만, 같은 공유기 네트워크 하에서는 접속이 가능하다.


2. 윈도 방화벽 문제

 - 방화벽 고급 설정에 가면 각종 프로그램과 포트 번호를 막거나 허용해 놓은 것을 알 수 있다.

 - exe 파일이 아니니 TCP or UDP 포트 번호를 허용한다. 프로그램은 모두로 설정


3. 안드로이드 퍼미션 문제 - INTERNET 퍼미션 추가


4. 진저브레드 이상 안드로이드 디바이스 메인 스레드 문제

 - 메인 스레드(UI스레드)는 사용자와의 소통 창구이기 때문에 안드로이드에서는 메인 스레드에서 시간이 많이 걸리는 작업이나

네트워크작업(오래 걸리는 것으로 간주)을 허용하지 않는다.

 - 때문에 소켓 통신 코드는 새로운 스레드에서 작성해야 한다.


5. 모바일 기기 자체의 문제

 - 지원이 끊긴 아트릭스 - 아직도 진저브레드, 해외 롬으로는 젤리빈도 설치가능하나 귀찮음

 - 모바일 기기는 네트워크 접속이 원활하지 않다? - 지나가다 주워 들은 얘기이므로 신빙성은 없음


이상 5가지 문제를 찾아내었는데(아마도)

결국 문제는 방화벽 때문이었다.


자바-자바 소켓 통신을 테스트해보면 안드로이드 문제인지 알 수 있겠다 싶어

집에서 어머니 맞고머신으로 전락한 예전 PC로 자바 클라이언트를 동작보았다. (다행히 이클립스가 설치되어 있었다.)

그래도 되지 않았다.

핑테스트를 해보았다. (cmd - ping 접속할 아이피주소)

PC에서 내 노트북으로는 접속이 되는데 노트북에서 PC로는 패킷이 가지 않았다. 

PC 방화벽을 내리니 잘 되더라.

그러고도 한참을 헤매다 결국 노트북의 방화벽을 셧다운 시켰다.


ㅡㅡ?


방화벽 예외처리가 왜 안되고 있었는지는 나중에 더 알아봐야겠다.







댓글
  • 프로필사진 dogfootman 이런글 사랑합니다. 감사합니다 2013.05.22 15:22
  • 프로필사진 열심히합시다 안녕하세요. 저도 자바 서버와 안드로이드 클라이언트 연결 안되서 하루종일 난리치다가 이 글 보게되서 올립니다.
    포트포워딩 제대로 된거냐고 통신사에 전화도 하고 그랬는데.
    정말 황당하게 DMZ설정을 했다가 끄니까 연결이 잘 되더군요.. 저도 8시간 동안 삽질하다가 됬습니다. 포트포워딩은 애초부터 별 문제 없었나봐요.. 네트워크는 참..사람을..ㅎㅎ
    2016.11.28 22:42
댓글쓰기 폼