public function open()
    {
        if ($this->_socket !== false) {
            $this->_error = 'already connected';

            return false;
        }
        if (!$fp = $this->_Connect()) {
            return false;
        }

        // command, command version = 0, body length = 4, body = 1
        $req = pack('nnNN', SEARCHD_COMMAND_PERSIST, 0, 4, 1);
        if (!$this->_Send($fp, $req, 12)) {
            return false;
        }

        $this->_socket = $fp;

        return true;
    }