2012-07-01 2 views
0

gprs 채널을 통해 i-jetty 웹 서버를 실행하는 두 개의 안드로이드 전화간에 피어 투 피어 연결을 만들어야합니다. 그러나 많은 모바일 운영자가 전화에 대한 인바운드 연결을 차단합니다. 주위에?안드로이드 피어 - 투 - 피어 연결

답변

1

NAT 침투는 충분히 복잡하기 때문에 네트워킹의 내부 구조에 익숙하지 않으면 안됩니다. pwnat이 사용하는 autonomous NAT traversal은 요즘 거의 최신 기술입니다.

기본 아이디어는 라우터에 IP 주소가있을 수 있다는 사실을 사용하는 것이며 NAT가 알고있는 한 모든 소스 IP 주소가 ICMP 오류 메시지에 유효하며 NAT가 해당 클라이언트에 전달합니다.

일반적으로 UDP 만 수신 할 수 있습니다. 따라서 자신 만의 바이트 스트림 프로토콜을 구현해야합니다.

1

일반적으로 두 대의 전화를 서로주고받는 가장 신뢰할 수있는 방법은 C2DM (또는 GCM, 지금)을 사용하는 것입니다. 아마도 장치가 C2DM을 사용하여 IP 주소를 교환하게 할 수 있습니다 (라우터 또는 방화벽 뒤의 주소가 차단 된 포트 인 경우 btw는 전혀 발생하지 않을 수 있음). 앱의 필요에 따라 SMS를 사용할 수도 있습니다.

일반적으로 사용자의 서버가 추가 될 수 있지만 짧은 메시지의 경우 한 장치가 C2DM을 통해 다른 장치에 직접 게시 할 수없는 이유는 없습니다. (테스트되지 않은 진술이므로 조심하십시오.)