If timeout is passed, use the value as the timeout for the underlying socket. This will avoid waiting for xml rpc servers that aren't really there or are misbehaving.