PHp fsockopen () общается через Telnet - PullRequest
0 голосов
/ 18 августа 2011

Я ищу руководство о том, как использовать fsockopen () для связи с системой telnet .... У меня все в порядке, но команда не отправляется.Я видел некоторую документацию fwrite(), которая показывает людей, отправляющих некоторые заголовки.

В настоящее время я запускаю команду на сервере telnet version через $class->send("version");.Нужно ли отправлять заголовки или что-нибудь вместе с этим, чтобы сервер telnet мог подобрать команду, или я могу просто отправить это?

/**
 * Connect to the GMC telnet system
 */
public function connect () {
    $this->connection = fsockopen($this->socket['host'], $this->socket['port'], $errorNumber, $errorMessage, 30);
    if (!$this->connection) {
        $this->error = 'Unable to connect to GMC: '.$errorMessage.' ('.$errorNumber.')';
        return false;
    }
    stream_set_timeout($this->connection, $this->commandTimeout);
    return true;
}

/**
 * Send a command to GMC
 */
public function send ($command) {
    //write to socket
    if (fwrite($this->connection, $command) === false) {
        $this->error = 'Unable to write to socket';
        return false;
    }

    sleep(1);

    //read socket
    if (($response = fgets($this->connection)) === false) {
        $this->error = 'Unable to write to socket';
        return false;
    }

    return $response;
}

/**
 * Disconnects from the GMC telnet system
 */
public function disconnect () {
    return fclose($this->connection);
}

1 Ответ

0 голосов
/ 19 августа 2011

Очевидно, все, что мне нужно было сделать, это убедиться, что я включил \n в конце своей команды !!

...