[질문] RMI 질문드립니다..
별햇님
RMI 개념적인 이해후... 예제를 따라 하던중 궁금한 점이 있어서 질문드립니다.
예제가 채팅 프로그램이었는데요
일단 책에서 봤을땐, 서버에 있는 객체를 사용하기 위해선 서버 에서 RMI Registry에 등록하면
클라이언트가 스텁을 이용해서 원격의 객체를 가져온다 그렇게 되있는데,
그러기위해선.
서버에선 객체를 레지스트리에 등록하고..
ChatServerImpl obj = new ChatServerImpl();
Naming.rebind(//localhost/chatserver,obj); 이런식으로..
클라이언트에선 이놈을 찾아오고..
ChatServer server = (ChatServer)Naming.lookup(//localhost/chatserver);
이렇게 한후 클라이언트에서 서버의 원격 객체를 사용할수 있다..이런식으로 개념이 정리될려는 찰나에..
이 채팅 예제에선..
서버와 클라이언트 가 모두 원격객체를 가지고 서로의 객체를 이용해야 하는데
서버단에서만 Naming.rebind 를 해주고
클라이언트에선 안해주더라고요..
그러고선 서버의 객체를 클라이언트에서 호출할때 클라이언트의 원격객체를 인자로 넘겨줘서 서버쪽에서 기냥 바로사용을 하던데,,
그럼 어떻게 클라이언트에선 Naming.rebind(어쩌구저쩌구...) 요것도 안해주고... 이걸 안해주면 RMI Registry 에 등록이 안되는거
아닌가요?? 그리고 서버에선 클라이언트 원격 객체를 사용하기 위해 Naming.lookup 도 안해주고 기냥 인자로 받아와서 사용해 버릴수 있는건가요... 내부적으로 자바에서 알아서 다 처리를 해주는건지...
질문이 너무... 횡설수설 한거 같은데...ㅡㅜ
소스파일은 첨부합니다..