This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
Socket has method getLocalSocketAddress() to return the socket address (host + port) for the local side (in your case the server) and getRemoteSocketAddress() to return the remote socket address for the other side (in your case the client). You'll need to cast the result to InetSocketAddress (after using instanceof to make sure it's safe) to be able to get the host and port.