2011-03-13 5 views
0

현재 클라이언트 역할을하는 모바일 사용자가 있으며 해당 컴퓨터의 실행중인 서버를 통해 집에 연결할 수 있습니다.중개자 추가를 고려중인 TCP 클라이언트/서버

동적 IP 주소 및 포트 포워딩에 문제가 있습니다.

나는 NAT traversal에 대해 생각해 보았지만, 모든 인스턴스에서 작동하지는 않습니다.

이상적으로는 모바일 앱에 사용자 이름과 비밀번호를 입력하고 시작시 서버에 매개 변수로 넣고 둘 다 다른 곳에서 호스팅되는 중간 서버와 통신하도록합니다. 그런 식으로 그들은 그 어떤 것도 신경 쓰지 않아도됩니다.

문제는 실행중인 서버가 모바일 응용 프로그램이이 시나리오에서 정보를 요청하는시기 또는 응답 할 대상을 알 수 없다는 것입니다.

구현 제안 또는 대안을 찾고 있습니다. 정말로, 아무것도 인정 될 것입니다.

+1

가정용 컴퓨터가 다른 곳에서 호스팅되는 서버에 연결하는 경우 해당 연결을 유지하도록 설정할 수 있으며 모바일 응용 프로그램과 통신 할 때마다 연결해야하므로 홈 컴퓨터에 메시지를 보냅니다. 가정 사용자가 해당 프로그램을 실행하는 동안 살아 있습니다. 아니? – Omar

+0

이것이 결국 내가 한 일입니다. 고마워. –

+0

당신을 진심으로 환영합니다. 도와 줘서 기뻐. 어쩌면 나는 답을 답으로 받아 들일 수 있도록 답을 달아야한다. – Omar

답변

0

문제를 올바르게 이해하면 클라이언트가 NAT 장치 뒤에있는 집에있는 컴퓨터에 연결하려고합니다. 그렇다면 VoIP 기술의 일반적인 문제입니다. 동적 IP 주소와 NAT를 해결할 수있는 신뢰할 수있는 방법이 있습니다. 특히 NAT 문제와 관련하여 UDP Hole Punching을 기반으로하는 두 가지 기술은 STUNICE입니다.

솔루션이 VoIP가 아닌 경우에도 UDP 홀 펀치 기술을 사용하여 NAT 뒤에있는 컴퓨터와 실시간 연결을 얻을 수 있습니다. STUN/ICE 서버가 없어도되지만 NAT/라우팅 및 NAT 장치의 여러 유형에 대해 많이 알아야합니다.

0

구멍 펀칭은 서버와 클라이언트가 모두 방화벽/라우터 뒤에 있거나이 경우 클라이언트가 유동 IP에 있고 서버가 방화벽/라우터 뒤에있는 경우에는 쓸모가 없습니다.

중간대 서버를 사용하는 것이 적절한 방법입니다. 그리고 나는 그 문제를 정말로 이해하지 못합니다. 사용자가 서버에 계정을 등록하고 로컬 서버와 전화에서 계정을 지정하게하십시오. 그런 다음 로컬 서버와 전화를 제공된 계정으로 서버에 연결하십시오.

그렇게함으로써 인터넷 서버는 전화 요청을 전달할 로컬 서버를 알게됩니다.

0

가정용 컴퓨터가 다른 곳에서 호스팅되는 서버에 연결하는 경우 해당 연결을 유지하도록 설정할 수 있으며 모바일 앱이 통신 할 때마다 연결해야하므로 홈 컴퓨터에 메시지를 보냅니다. 가정 사용자가 해당 프로그램을 실행하는 동안 살아 있어야합니다.

관련 문제