I am writing a simple client-server application using Java sockets where client creates socket connection by passing server address and server listening port. The server may be busy/over-loaded during the communication cycle because of serving many clients as the same time. To off-load the burden, I need to move some of connected clients to some other server. One why to do this is to let client know the address of some under-loaded server so that client could establish a new connection by itself. However, the requirement is that the server should not let client (or any proxy running at client side) know about this migration. This is just like moving server side socket connection to some other machine without letting client know this. Any help is appreciated!