2012-09-20 4 views
2

나는 TCP 소켓을 사용하여 인터넷을 통해 두 개의 안드로이드 mobiles 사이의 통신을 설정하는 앱을 만들고 있습니다. 따라서, 나는 주로 2 개의 mobiles의 IP 주소를 멋진 응용 프로그램 포트 번호와 함께 사용하게 될 것입니다.인터넷을 통한 Android TCP 통신 (LAN이 아님).

이게 가능합니까? LAN에서와 같이 사용자 지정 TCP 포트를 만들고 인터넷을 통해 통신하려면 어떻게해야합니까?

지금까지 LAN의 두 에뮬레이터간에 성공적으로 통신 할 수있었습니다. 하지만 그것은 일반적으로 호스트 컴퓨터가 인데, 데이터가 포트 8080 또는 80에만 데이터를 허용하므로 에뮬레이터의 경우 인터넷을 동일하게 처리 할 수 ​​없습니다. 당연히 할 수있는 항구 포워딩이 있지만, 나는 그것으로 더러워지고 싶지 않다.
so,
LAN의 에뮬레이터 연결은 인터넷에서 mobile 연결을 보장합니까? cos 인 경우 mobile with direct net connectivity 단일 IP 주소 (개인 및 외부 IP 없음)와 트래픽을 차단할 라우터가 없습니다.

+1

특정 공급자가 주소를 장치에 할당하는 방법에 따라 다릅니다. 나는 그들이 192.168/16 또는 10/8과 같은 사적인 서브넷에서 아마도 당신에게 세계적으로 라우팅 가능한 주소를 줄지는 모르겠다. –

+0

@NikolaiNFetissov 여기서 ipv6의 장점은 무엇입니까? –

+0

32 비트 주소 대신 128 비트 주소이므로 많은 * 주소 공간이 있으므로 NAT 게임이 필요하지 않습니다. –

답변

1

99.8 %가 모바일 네트워크에서이 작업을 수행 할 수 없다고 확신합니다. 올바르게 기억하면 각 셀 타워에는 자체 IP가 있으며 연결된 셀 타워에는 개인 IP가 있습니다. 그러나 Wifi에서이 작업을 수행 할 수 있다고 확신합니다.

+0

와우 seroiusly ?! 그래서 만약 내가 같은 지역에서 인터넷에 연결된 동일한 망 공급자를 사용하는 두 대의 휴대 전화를 가지고 있다면 그들은 같은 외부 IP를 갖게 될까요? –

+0

RARP 프로토콜이 이에 대한 올바른 해결책이 될까요? –

2

혹시 구멍 펀칭 기술에 대해 들어 보셨습니까? 이것에 대해 읽어보십시오. 아마도 도움이 될 것입니다. link 이것은 내가 생각하기에 스카이프가 작동하는 방식입니다.이 기술을 사용하려면 두 개의 클라이언트가 모두 액세스 할 수 있고 클라이언트 중 하나가 NAT 뒤에있는 경우에도 두 클라이언트간에 직접 연결하는 데 도움이되는 서버가 있어야합니다.