views:

228

answers:

3

My client pc is connected to as server pc via sockets over Ethernet, How do I find the IP of this client from the server side code.
The server is dishing out one socket per client in a new Thread.
When I do a csocket.getLocalAddress().toString() on the client socket I still get the Server IP address. (csocket is the socket that the Server has spawned upon a now client connection and passed it to a new Thread).

+1  A: 

Use getRemoteSocketAddress() instead.

erickson
+1  A: 

I think you might be looking for the getInetAddress method of the Socket object.

Alex Shnayder
That gives the local address of the socket. The server needs to find the remote address from its perspective.
Stephen C
@Stephen: according to the Javadoc, `getInetAddress()` "returns the remote IP address to which this socket is connected, or null if the socket is not connected."
erickson
+2  A: 

I believe you want to use the remote address instead:

csocket.getRemoteSocketAddress().toString();
jheddings