2012-01-13 4 views
0

내가 자바 소켓 읽기를 테스트하고있어 다른 PC의 소켓을 읽을 수 없습니다/I가에서 서버와 클라이언트를 실행하는 경우는 읽기/쓰기 할 수 Oracle.com지역의 PC가 동일한 네트워크

에서

을 기본 예제를 쓰기 같은 기계. 하지만 다른 PC에서 읽을 때 작동하지 않습니다.

이것은 동일한 허브를 통해 연결된 방식입니다. 인터넷 -> 로컬 네트워크 -> 허브 -> PC1 및 PC2

PC1은 KnockKnockServer.java를 실행하는 서버입니다. PC2는 KnockKnockClient.java를 실행하는 클라이언트입니다.

모든 기본 KnockKnockClient.java과 동일하지만, 이것은 : 오류 :

kkSocket = new Socket("PC1", 18090); 

하지만 내가 가진 "PC1에 대한 연결을위한 I/O를 가져올 수 없습니다."

PC1의 카스퍼 스키 프로그램과 PC2의 방화벽에서 동일한 포트를 열었습니다. PC1에서 Kaspersky 및 방화벽을 해제 한 경우에도 동일한 오류가 표시됩니다.

아이디어가 있으십니까?

감사합니다,

+0

"PC1"은 유효한 DNS 이름입니까? –

+0

유효한 DNS 이름인지 어떻게 알 수 있습니까? BTW, PC1은 모든 로컬 네트워크와 인터넷에 액세스 할 수 있습니다. – user1098761

+0

PC1의 IP 주소를 사용할 수 있습니까? 먼저 PC1에 ping 할 수 있는지 확인하십시오. PC1에 연결할 수 있으면 IP 주소를 사용하여 소켓을 만듭니다. 이것은 DNS/기계 이름 또는 더 근본적인 문제가 있는지 알려줄 것입니다. – ahoffer

답변

1

대신 원격 호스트의 IP 주소를 사용해보십시오 :

kkSocket = new Socket("192.168.0.1", 18090); 

윈도우 네트워크는 일반적으로 DNS보다는 호스트 이름 확인을 위해 WINS를 사용 - 대부분의 홈 네트워크는 심지어이없는 DNS 서버. 이를 통해 Windows 자체는 이름으로 원격 서비스 (예 : 공유)를 찾을 수 있지만 대부분의 응용 프로그램은 작동시키기 위해 적절한 DNS 인프라가 필요합니다.

또는 hosts 파일을 편집하여 네트워크의 모든 호스트의 IP 주소와 해당 이름을 연결할 수 있습니다.

+0

고마워, 나는 그것을 시도 할 것이다. 하지만 왜 PC1이 PC2를 핑 (ping) 할 수 없는지 궁금합니다. – user1098761

관련 문제