마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android socket 통신할때요.

0 추천
안녕하세요

TCP 서버 를 java 로 구축하여 anroid 와 통신되는 채팅 앱을 만들었습니다.

 

하지만 지금은 와이파이로 연결하여 같은네트워크에서만 소켓통신이 되는데요.

 

3g 와 4g 일때도 접속 하고싶은데요. 이것은 어떻게 해결해야될지 고민입니다.

 

조언좀 해주세여 ㅠ 자바 서버는 vmware 로 하여 작업했습니다.
스릉스릉 (1,260 포인트) 님이 2015년 7월 2일 질문

3개의 답변

0 추천
같은 네트워크만 되고, 타 네트워크는 안된다 함은

상대방의 주소를 찾지 못하여서가 아닐까요?

 

뭔가 선언 부분이...localhost 로 고정되어있거나..
안드로이드로우 (15,740 포인트) 님이 2015년 7월 2일 답변
0 추천
192.168.x.x 의 사설 네트워크는 공유기나 방화벽에서 별도 처리하지 않으면 외부에서 접속 불가죠.

외부에 서버를 놓던가요.

소켓및 TCP/IP개론, 방화벽 개론 정도를 다시 공부해보세요. 다 나옵니다.

적어도 공유기 ip를 알고  NAT설정을 하면 될지도?
익명사용자 님이 2015년 7월 2일 답변
0 추천
외부에서 접속할땐 공유기ip를 치고 들어가야 합니다.

192.168. 어쩌고 하는 ip는 사설아이피라서 외부에서 접근할때 접근을 못해요.

공유기 설치하셨으면 그 공유기에 할당된 고정ip가 있을꺼에요.

그 ip를 이용해서 접속을 해야되고 공유기에 포트포워딩 설정도 해줘야합니다.

어떤 포트로 접속된거는 공유기에 어떤 ip로 물려있는 서버로 갈수있도록.

 

예를들어서, 서버를 구축한 pc의 ip가 192.168.0.120 이고 포트는 9000 이고, 공유기의 공인IP가 175.221.33.120

이라고 할때

3g나 LTE 망 에서 192.168.0.120 에 9000 를 이용해서 소켓열면 안열려요.

공유기의 공인ip인 172.221.33.120 에 포트9000번을 이용을 하고, 공유기에선 9000번 포트로 들어오는 것들을

192.168.0.120 으로 갈수 있도록 포트포워딩 설정을 해줘야 합니다.
아시리 (8,400 포인트) 님이 2015년 7월 2일 답변
...