2012-03-04 3 views
5

내 미디어 플레이어 용 C# 리모콘을 쓰고 ​​있습니다. 그것은 내 안드로이드 전화에서 실행됩니다.라우터 뒤에있는 컴퓨터와의 간단한 TCP 통신

내 컴퓨터에 TCP 연결을 수신하는 클라이언트 앱이 있는데, 연결이 설정된 경우 명령이 처리됩니다 (볼륨 높이기, 볼륨 낮추기 ...). 내 컴퓨터에서 telnet 127.0.0.1을 사용하여 해당 부분을 테스트했으며 훌륭하게 작동합니다.

내 네트워크에 연결되어 있지 않아서 (Wi-Fi가없고 유선 연결 만) 내 휴대 전화에서 연결하는 것이 까다로울 수 있으므로 진행 방법을 모르겠습니다. 기본적으로 라우터 뒤에있는 컴퓨터에 연결하고 싶습니다.

휴대 전화에서 TCP 서버를 호스팅하고 PC를 연결해야합니까? IRC를 예로 들어 보겠습니다. 라우터 뒤에 있기 때문에 포트 포워딩없이 외부의 서버에 연결할 수 있습니다. 또는 컴퓨터에서 서버를 호스팅하는 것이 좋으면 어떻게 연결해야합니까?

나는이 모든 것을 아직 이해하지 못해서, 내가 잘못한 것이 있으면 나를 고쳐 주시기 바랍니다.

+0

"TCP 연결을 수신하는 클라이언트 응용 프로그램이 있습니다."... _server_ 응용 프로그램이라고 생각합니다. 클라이언트는 서버에 연결하고 서버는 연결을 대기합니다. :) –

답변

5

상황이 내 휴대 전화에서 연결에 관해서 (I이 Wi-Fi 인터넷이없는, 단지 연결을 유선)가 동일한 네트워크에 아니에요 때문에, 난이도를, 그래서이 방법을 잘 모르겠어요 발하다. 기본적으로 라우터 뒤에있는 컴퓨터에 연결하고 싶습니다.

달성하려는 목표는 가능하지만 NAT 통과 및 구멍 펀칭에 대해 알아야합니다.

대부분의 경우 NAT/라우터 뒤의 장치는 LAN에서만 유효한 개인 IP 주소를 사용합니다. 원격 장치는이를 추측 할 수 없습니다. 이 개인 주소는 장치가 WAN과 통신하려고 할 때 NAT에 의해 공용 IP 주소로 변환됩니다.

쉬운 솔루션은 NAT 뒤에있는 장치에 공개 IP 주소를 부여 할 수 있다는 것입니다. 이 경우 WAN에있는 원격 장치는 주소가 공개되어 있기 때문에 쉽게 연결할 수 있습니다.

+2

NAT 뒤에있는 장치에 공용 IP 주소를 부여하는 방법은 무엇입니까? – Trilarion

6

PC를 계속 유지하고 PC에 연결을 전달하도록 라우터를 구성하는 것이 더 논리적 일 것입니다.

  • DMZ 구축 : 하나의 PC로 전달됩니다 라우터에 들어오는 모든 연결 두 가지 옵션이 있습니다. 연결을 허용해야하는 네트워크에 PC가 1 대있을 때 가장 쉽습니다.
  • 구성 port forwarding : 포트 X에서 들어오는 연결을 포트 Z에서 IP Y로 전달하도록 라우터에 지시 할 수 있습니다. 이렇게하면 여러 PC에서 연결 (라우터의 다른 포트 사용)을 나열 할 수 있습니다. 그것은 또한 조금 더 안전합니다.

라우터 설정 방법은 라우터에 따라 다르지만 대부분의 라우터는 포트 80에서 연결을 허용하고 쉬운 웹 인터페이스를 제공합니다. 라우터 브랜드를 제공하는 경우, 매뉴얼에 링크 할 수 있습니다.

+2

하지만 IRC 연결은 어떻게 작동합니까? IRC에 포트 포워딩이 필요하지 않은 이유는 무엇입니까? (또는 심지어 HTTP?) –

+0

답변 주셔서 감사합니다 btw.포트 포워딩을 설정했고 모든 것이 올바르게 작동합니다. 그러나 그것은 애플 리케이션을 간단하지 않게 만든다. 포트 포워딩없이 할 수있는 방법이 있습니까? –

+2

IRC에 연결하는 PC이므로 IRC에 포트 전달이 필요하지 않습니다. 라우터에서 PC가 연결을 시도하고 NAT (네트워크 주소 변환)를 사용하여 서버에서 PC로 반환 패킷을 전송합니다. – Konerak