{
if (socketTimeout != null)
socketTimeout.stop();
socket = makeSocket(destination);
socketTimeout = new SocketTimeout(socket, timeoutMillis);
// There is a really odd circumstance (at least on Linux) where a connection
// to a port in the dynamic range, while there is no listener on that port,
// from the same system/network interface, can result in a local port selection
// that's the same as the port that the connection attempt is to. In this case,