동일한 컴퓨터에서 잘 작동하는 매우 간단한 RMI 서버/클라이언트가 있습니다. 한 대의 컴퓨터에서 서버를 실행하려고하고 있고 다른 서버의 클라이언트가 모두 같은 네트워크에 있습니다. 내가 사용하는 IP를 네트워크 속성을 설정 한 : 두 시스템에RMI 원격 연결이 실패합니다.
System.getProperty("java.rmi.server.hostname", "192.168.x.x");
& 장애인 방화벽하지만 연결이 계속 실패. execption이 잡히지 그러나
Registry registry = LocateRegistry.getRegistry("192.168.x.x",8888);
ITest stub = (ITest) registry.lookup("ITest");
은으로 192.168.xx 대 주어진 하나의 예와 같은 아닌 IP를 보여줄 것 같다
클라이언트 코드는 (서버 8888에 createRegistry 사용) 서버에 연결하려면이 옵션을 사용하여 169.254.xx로 :
당신은 배경에 rmiregistry의를 시작하지 않은 :
는Client exception: java.rmi.ConnectionException: Connection refused to host: 169.254.x.x; nested exception is ...
실제 또는 가상 네트워크 인터페이스가 여러 개 설치되어 있습니까? – Marged
@Marged는 네트워크 어댑터를 의미합니까? 그래, 그 중 4 2가 가상입니다 –
'System.getProperty'는 속성을 설정하지 않습니다. 반환 값을 버리면 아무 것도 유용하지 않습니다. 서버를 시작한 후 플랫폼에 따라 netstat -p 또는 lsof 등을 사용하여 수신 대기중인 주소와 포트를 정확하게 확인하십시오. –