Re: RMI port on client side
I'm back to this problem which is not yet solved:
Server is establishing a connection to RMI client on a random port,
whereas RMI interface bound by the server does not define any way for
the server to callback the client.
I think you'll find that it's the other way around, the client has established
that connection to the server.
I think that RMI works on a very similar principle to RPC. The idea is both
cases is that servers shouldn't need to operate on well-defined service ports
(these are limited in number, and require global registration), they can listen
on any available port and a registry will translate between a service and its
listening port. In the case of RMI the registry is rmiregistry, in the case of
RPC its portmap. The only port which needs to be determined in advance is the
port on which the registry listens.
An RMI server must register itself with rmiregisty and tell the registry which
port it is listening on. When a client wants to use a service it doesn't
initially know where that service is available (the servers listening port). So
it asks the registry for a particular service, and the registry will tell it
what port that service is available on. The client then contacts the service
directly on its listening port.
So, the RMI registry is listening on port 4000 and your RMI server is listening
on port 33041. Your RMI client contacts the RMI registry on port 4000 and asks
where the service it wants can be contacted and is told that it is available on
port 33041. The client then contacts the server on port 33041 and invokes
whichever remote method it wanted. There will be 2 established connections from
the client to the server, to port 4000 for the rmiregistry and to port 33041 to
the RMI server itself.
[This is my vague understanding, if this is complete bunkum then I apologise in
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : email@example.com
Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555