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

소켓 통신을 이용한 채팅 질문 드립니다.

0 추천
같은 공유기 내의 모바일 기기 A와 B 사이에서 채팅이 가능한 메신저를 개발하려고 합니다.

A : server A : client 일때는 A에서 메세지를 전송하면 A로 돌아오는데

ex)

A: hello

A: hello

 

그런데,

A : server, B : client 일때는 아예 클라이언트가 서버로 접속을 못 합니다.

서버와 클라이언트의 기기가 같은경우에는 되고 다른 기기와는 통신이 안되는 이유와 해결책좀 알려주세요.
seok0916 (180 포인트) 님이 2014년 7월 20일 질문

1개의 답변

0 추천
혹시 핫스팟 상태에서 테스트한게 아닌게 하네요 공유기 아니라 핫스팟시 핫스팟 자체인 본체기기는 서버로서 통신이 불가능 합니다 핫스팟 기기하나와 통신할 기기 2개가 더 필요합니다 공유기를 통해서 할때는 기기 두개로 되지만요
리카엘 (660 포인트) 님이 2014년 7월 20일 답변
저... 제가 알기로는 핫스팟 기기의 IP를 Client가 알고 있다면,
핫스팟기기 (서버) <-> Client 기기 (클라이언트)
로 1:1 통신이 가능한 것으로 알고 있습니다.

실제로 테스트 앱 개발해서 확인도 해본 부분이구요..

혹시 이견 있으신 분 있으시면 알려주세요~
A : server, B : client 일때는 아예 클라이언트가 서버로 접속을 못 합니다.
라고 하셨는데 이말자체가 1:1통신이 되지 않아 질문 하신거 아닌가요? 물론 와이파이 일때는 상관없는 부분이기에 코딩쪽에 문제가 있을 가능성이 크지만 핫스팟으로 연결기에는 저 또한 직접 실험해보고 답을 드리는 것인지라 핫스팟 자체 기기는 아이피가 사설아이피가 아니고 실 아이피고 핫스팟으로 연결한 클라이언트는 사설아이피다 보니 핫스팟 기기가 서버구동하고 핫스팟받은 기기는 가상아이피지만 인터넷이 되기에 실아이피와 통신은 가능하고 반다상황인 핫스팟 받은 받은 기기를 서버로 할경우 가상아이피로 서버가 구동되기에 핫스팟 본체기기로는 클라이언트로서 접속이 불가능하게 됩니다
무엇보다 통신이 불가능한것은 모든 소켓통신은 포트가 존재 합니다
하지만 외부아이피인 실아이피로 직접 통신시에는 포트를 아무리 연결해도
통신망 자체에서 포트번호를 막아 두었기에 클라이언트로서 봤에 못씁니다 피시를 서버로 세팅했자면 말이 다르겠지만 제말의 의도는 위의 실험이 와이파이 일때는 정상적으로 되겠지만 핫스팟 일시 통신에 문제가 있다는 것입니다.
...