2016-10-04 5 views
2

다른 라우터에 연결된 컴퓨터에서 집에있는 한 컴퓨터의 ServerSocket에 연결하려고합니다. 나는 몇 시간 동안 인터넷 검색을 해왔고 이미 포트 포워딩을 설정했다. 이미 공개 IP 주소와 포트 번호로 소켓을 만들려고했지만 성공하지 못했습니다. 내 질문은 : 내 공용 IP 주소, 서버의 로컬 IP 주소 및 포트 번호를 알고 서버에 제대로 연결되도록 소켓을 어떻게 만듭니 까?다른 라우터의 클라이언트에서 서버에 연결

이 내가 시도 생성자는하지만 성공이다 : 사전에

new Socket(my_public_ip_address, port); 
new Socket(my_local_ip_address, port); <- this one works only if both computers are connected to the same router 

감사합니다!

+0

1. 오류 출력/스택 추적을 추가 할 수 있습니까? 2. 공용 IP (공개 라우터 -> 클라이언트 및 공용 라우터 -> 두 번째 라우터 -> 서버)로 표시된 네트워크 내의 클라이언트 컴퓨터입니까? 라우터의 공용 인터페이스에 내부 네트워크의 공용 IP로 연결하지 못할 수도 있습니다. 서버의 내부 IP 또는 두 번째 라우터의 "공용"IP에 직접 연결을 시도 할 수 있습니다. – Konrad

+0

여기에 나와있는 문제는 라우터에서 NAT를 사용하고있어 종단 간 연결을 수행 할 수없는 경우가 거의 확실합니다. Java 코드는이 코드와 아무 관련이 없습니다. 들어오는 연결을 허용하도록 라우터를 구성해야합니다. 수퍼 유저가 더 유용한 사이트가 될 수 있습니다. – chrylis

+0

귀하의 빠른 답장을 보내 주신 많은 분들께 감사드립니다. 내일 모든 제안을 시도해 보도록하겠습니다! – andyfed

답변

0

: 내가 불행한 사람이라면 서버 컴퓨터에 연결할 수 없습니다. (제 경우에는 대학 네트워크가 들어오는 모든 연결을 차단합니다).

아마도 서버가 문제가 아니라 라우터에 대한 경로 (연결)입니다.

귀하의 경우에는 먼저 클라이언트에서 Traceroute 서버를 시작하려고합니다. Traceroute는 최소한 라우터에 연결해야합니다.

0

  • PC Y는 localipY와 연결이의이

    • PC의 X가 localipX을 가지고 있다고하자 publicipX와 routerX에 연결 (내가 잘못 생각하면 나는, 그래서 pls는 저를 해결 컴퓨터 네트워크와 좋은 아무 생각 없음)

      1. 가 요청을 확인 : 당신은 다음을 수행해야 publicipY

    와 routerY에 X에서 특정 포트 (P)를 통해 publicipY

  • 포트 P에서 모든 요청을 리디렉션하도록 routerY에 구성하면 localipX to portX (X 응용 프로그램이 수신 대기하는 포트)로 전송됩니다.
  • 포트 포워딩 등을 언급 한 사실을 알고 있지만 위의 단계를 확인해 보시기 바랍니다. 작동하지 않는 경우 방화벽을 확인하고 사용 된 모든 포트가 열려 있는지 확인하고 연결되어있는 모든 노드를 조사하십시오 (예 : X가 요청을 보내고 publicipX가 요청을 보내고 공개하고 Y가 가져 오는 지 확인).