I am working on a java rewrite of a C++ CORBA server using Orbix. I am
using OrbixWeb. Clients have the ability to register and deregister
themselves but not using the kind of IDL interface you would expect.
The IDL is legacy and cannot be changed. Instead of the register
method returning a token that is used in the deregister, a proprietary
extension of Orbix is used to identify the client. In the C++ version
of Orbix you can get the file descriptor for the underlying connection
to the client. In OrbixWeb you cannot (please correct me if I am wrong
about this). I tried to use the socket object instead with the code
below:
OrbCurrent orbCurrent = _OrbixWeb.Current();
Object socketRef = orbCurrent.get_socket();
Socket socket = (Socket)socketRef;
I then get the IP Address and port number from the socket and use
these as a form of client id. The trouble is, this does not always
work. Sometimes during testing when I have two clients I seem to get
getting the Socket object for the wrong client. It is as if
OrbixWeb.Current() sometimes returns the wrong value. Can anybody help
please?
Regards,
Andrew Marlow