2014-07-26 2 views
1

컴퓨터 IP 주소 대신 웹 사이트 IP 주소를 사용하도록 TCPListener를 설정하는 방법이 있습니까? 예를 들어, 127.0.0.1을 사용하는 대신 74.125.233.95 (Google의 IP 주소. 예를 들어 여기서만 사용)를 사용하십시오.웹 사이트를 통한 TCP 연결

Dim hostname As IPHostEntry = Dns.GetHostByName(TextBox1.Text) 
     Dim ip As IPAddress() = hostname.AddressList 
     Dim port As Integer 
     Dim localAddr As IPAddress 
     Dim server As TcpListener 
     Try 

      port = 8080 
      server = New TcpListener(ip(0), port) 

      server.Start() 
      RichTextBox1.AppendText("Listening on : " & ip(0).ToString & vbNewLine) 
     Catch ex As Exception 
      RichTextBox1.AppendText(ip(0).ToString & " : " & ex.Message & vbNewLine) 
     End Try 

위의 코드 출력 :

74.125.233.95 : The requested address is not valid in its context 

이 사용 TCPListener 또는 다른 방법을 할 수있는 방법이 있나요 여기에 내가 시도 내 코드는?

편집 :

는 것은이보기 나는 인터넷을 통해 세계 어느 곳에서 제어 할 수있는 응용 프로그램을 만들려고합니다. 가능한 한 간단하게 유지하여 사용자가 라우터를 사용할 때 포트 포워딩을 정의 할 필요가 없으며 방화벽이 방화벽을 막지 않도록 할 수 있습니다. 따라서 나에게 가장 좋은 방법은 앱이 내 웹 사이트 도메인 이름에 대한 명령을 수신 대기한다는 것입니다.

+0

수행하고자하는 작업은 무엇입니까? Google의 요청을 받습니까? – usr

+0

@usr : 아니요. 예제로 Google의 IP 주소 만 사용했습니다. 코드에 사용 된 실제 코드는 내 웹 사이트에 속합니다 – Adriaan

+0

다시 수행하려면 어떻게해야합니까? – usr

답변

1

코드는 IP 주소를 정의 할 책임이 없으며 컴퓨터 네트워크 인터페이스의 운영 체제에서 구성한 IP 주소에만 바인딩됩니다.

TcpListener로 포트를 열고 들으면 IP 주소 (또는 0.0.0.0/INADDR_ANY를 사용하는 경우 모두 포함)가있는 기존 이더넷 인터페이스에 바인딩됩니다.

EDIT : 사용자가 포트 포워딩과 같은 특별한 구성을 요구하지 않고 배포 한 응용 프로그램으로부터 요청을 받고 싶거나 OP를 원격 제어하려고합니다.

"푸시"를 사용하는 것이 가장 좋은 방법입니다. 모든 앱을 집으로 가져옵니다.

중앙 서버에서 응용 프로그램으로 TCP 연결을 시작하지 않고 응용 프로그램을 공용 주소의 중앙 서버에 연결하고 서버가 명령/요청을 눌러 응용 프로그램을 제어 할 수 있습니다. 요컨대, 이것은 사용자 네트워크에서 포트 포워딩없이 프록시 및 NAT 방화벽 뒤에서 작동합니다. 서버가 공용 IP 주소에서 실행되어야합니다. 일단 어떤 쪽이 연결을 시작했는지는 중요하지 않습니다. 일단 연결이 끝나면 양방향입니다.

+0

사실을보고 싶습니다. 인터넷을 통해 전 세계 어디에서든 제어 할 수있는 앱입니다. 가능한 한 간단하게 유지하여 라우터를 사용할 때 포트 전달을 정의 할 필요가 없으며 방화벽이 방화벽을 차단하지 않도록 할 수도 있습니다. 그래서 나에게 가장 좋은 접근법은 앱이 내 웹 사이트 도메인 이름을 통해 명령을 수신 대기한다는 것입니다. – Adriaan

+0

오, 물론. 질문은 오해의 소지가 있습니다. 기존 IP 주소의 다른 IP 주소에 바인딩하려는 것처럼 들립니다. 앉다 이자형. 내 대답을 편집하겠습니다. – codenheim

+0

어쩌면 내가 사용할 수있는 몇 가지 예가 있습니까? 부디? – Adriaan

0

전 세계 어느 곳에서나 인터넷을 통해 제어 할 수있는 앱을 만들고 싶습니다. 가능한 한 간단하게 유지하여 사용자가 라우터를 사용할 때 포트 포워딩을 정의 할 필요가 없으며 방화벽이 방화벽을 막지 않도록 할 수 있습니다. 따라서 나에게 가장 좋은 방법은 앱이 내 웹 사이트 도메인 이름에 대한 명령을 수신 대기한다는 것입니다.

아니요, 최선의 방법은 아닙니다. 가장 좋은 방법은 응용 프로그램과 응용 프로그램을 제어하려는 사용자가 제공하고 관리하는 중앙 서버에 연결하는 것입니다. 중앙 서버는 요청을 릴레이합니다.

시도중인 접근 방식은 의미가 없으므로 작동하지 않습니다.

+0

사실 내 웹 사이트를 중앙 서버로 사용하고 싶습니다. 그게 내가하려는 일 이었지만, 어떻게해야 할지를 생각할 수없는 것 같습니다. 나는 무언가를 알아 내려고 노력하면서 수많은 시간을 구글에 보냈다. – Adriaan

+0

@ Adriaan 웹 사이트에서 어떤 문제가 발생했는지에 관해 구체적인 질문을하지 않는 이유는 무엇입니까? 귀하의 웹 사이트는 아직 완전히 작동합니까? 그렇지 않다면 질문은 작동하는 웹 사이트를 만드는 것이지 응용 프로그램을 만드는 것이 아닙니다. –

+0

내 웹 사이트가 실행 중입니다.나는 중앙 서버로 사용하는 방법을 모른다. 그러나 WebRequest 및 WebResponse (VB.Net)를 고려하고 있었지만 보안에 대해 매우 염려합니다. TeamViewer와 같은 기능을하는 것도 작동 할 수 있습니다. 기본 애플리케이션에 고유 ID가있는 경우 해당 ID를 사용하여 클라이언트 애플리케이션에서 연결할 수 있습니다. 다시 말하지만, 포트 포워딩과 방화벽을 설정하지 않고도 – Adriaan