2011-09-21 14 views
0

Java에서 소켓 프로그램을 구현하고 있는데 Socket 및 ServerSocket 클래스를 LocalNetwork에서만 사용할 수 있다는 것을 깨달았습니다. 원격 PC (다른 라우터)가 내 PC에 연결할 수 있도록해야합니다. (서버)? 어떤 API를 사용해야합니까?그물을 통한 소켓

+2

이들은 네트워크에서 허용하는 방식으로 만 사용할 수 있습니다. 방화벽을 통과 할 수 없습니다. 또한 액세스 할 수없는 네트워크에 연결할 수 없습니다. 이 방법으로 연결할 수 없으면 네트워크 문제입니다. –

답변

5

SocketServerSocket은 로컬 네트워크에만 국한됩니다. 방화벽과 같은 문제가있을 수 있지만 클래스 자체는 추가 제약 조건을 두지 않습니다.

1

제한이 없으며 인터넷에서도 사용할 수 있습니다. 원하는 것은 방화벽이 소켓에서 수신하는 포트에 연결할 수 있는지 확인하는 것입니다. 포트를 통해 포트 전달을 만들 수 있습니다. DMZ 또는 NAT를 사용하여 요청을 필터링하여 대기중인 시스템으로 전달하십시오.

1

"Socket 및 ServerSocket 클래스는 내 LocalNetwork에서만 사용할 수 있습니다."

어디에서 가져 왔습니까?

어쨌든 Socket과 ServerSocket은 로컬 네트워크로 제한되지 않습니다. 이 지역되지 않습니다 : 클라이언트와 서버가 서로 다른 네트워크에있는 경우

Socket s = new Socket("www.java2s.com", 80); 

그러나, 당신은 (즉, 등, 라우터의 DMZ를 구성) 적절한 라우팅을 설정해야합니다.

관련 문제