public function connect($host, $port, $timeout = null)
    {
        $uuid = $this->uuid($host, $port);

        if ($timeout === null) {
            $timeout = $this->getTimeout();
        }

        // The error variables
        $errorNumber = null;
        $errorString = 'n.a.';

        if (isset(self::$connections[$this->getPersistentId()][$uuid]) === false) {
            if ($timeout !== null) {
                $connection = @fsockopen(
                    $host,
                    $port,
                    $errorNumber,
                    $errorString,
                    $timeout
                );
            } else {
                $connection = @fsockopen(
                    $host,
                    $port,
                    $errorNumber,
                    $errorString
                );
            }

            // Check for failed connection
            if (is_resource($connection) === false || $errorNumber !== 0) {
                throw new Exception(
                    sprintf(
                        'Error "%s: %s" while connecting to Memcached on host: %s:%s (UUID: %s)',
                        $errorNumber,
                        $errorString,
                        $host,
                        $port,
                        $uuid
                    )
                );
            }

            // Store for further access/use ...
            self::$connections[$this->getPersistentId()][$uuid] = $connection;

        } else {
            $connection = self::$connections[$this->getPersistentId()][$uuid];
        }

        return $connection;
    }