작동하는 RMI 클라이언트 - 서버 시스템이 있습니다. 서버의 호스트 정보는 클라이언트에게 알려 지므로 클라이언트가 검색하여 전화를 걸 수 있습니다. 서버에 대한 첫 번째 호출에서 클라이언트는 서버가 콜백을 수행 할 수 있도록 "자체"에 대한 원격 참조를 서버에 전달합니다. 서버는 연결된 모든 클라이언트의 목록을 유지 관리합니다 (클라이언트가 서버에서 "등록 취소"할 때 해당 클라이언트를 종료하고 클라이언트가 도달 할 수 있는지 여부를 주기적으로 검사하고 그렇지 않은 스레드를 제거하는 스레드가 있음).RMI : 원격 객체의 IP 주소를 결정하십시오.
서버에 그래픽 인터페이스 (웹 응용 프로그램의 일부)가있어 사용자가 언제든지 연결된 클라이언트를 시각화 할 수 있습니다. 이제이 인터페이스에 클라이언트의 IP 주소를 표시하라는 메시지가 표시됩니다.
내 질문 : RMI에서 원격 객체 (스텁)에 대한 원격 참조가있는 경우이 원격 객체가 실제로 존재하는 호스트 (DNS 이름 또는 IP 주소)를 확인하는 간단한 방법이 있습니까?
참고 : 클라이언트가 먼저 정보를 연결하고 저장할 때 RemoteServer.getClientHost
을 사용할 수 있습니다. 또는 호스트 정보를 반환하는 클라이언트에서 원격 메소드를 구현할 수 있지만 기본 제공 RMI 방법이 있는지 알고 싶습니다. 원격 참조로 그것을하는 것.
질문이 명확하지 않습니다. RemoteServer.getClientHost()는 원격 객체의 주소가 아니라 클라이언트의 주소를 제공합니다. 그리고 어쨌든 원격 객체의 주소는 무엇입니까? RMI에서 할 수있는 일은 아무것도 없다. – EJP
예,이 경우 원격 객체의 주소가 필요합니다. RMI 호출이나 그와 같은 것, GUI에 표시하기위한 것은 아닙니다 ... –