Как telnet отличается от исходного соединения tcp

Я пытаюсь отправить команды на сервер через скрипт python. Я вижу соединение сокета, установленное на сервере. Но команды, которые я отправляю, не похоже на это (сервер делает чтение в сокете). Сервер в настоящее время поддерживает интерпретатор команд telnet. т. е. вы используете telnet для адреса команды и порта, и вы можете начать отправку строковых команд. Мой вопрос в том, есть ли что-то принципиально отличное от отправки строк по tcp-сокету, в отличие от использования telnet. Я использовал как сырые сокеты, так и структуру Twisted.

3 Solutions collect form web for “Как telnet отличается от исходного соединения tcp”

Telnet – это способ передачи управляющей информации о канале связи. Он определяет буферизацию строк, эхо символов и т. Д. И выполняется через серию сообщений will / wont / do / dont при запуске соединения (и, в редких случаях, во время сеанса).

Вероятно, это не то, что означает ваша документация на сервере. Вместо этого это, вероятно, означает, что вы можете открыть сокет TCP в порт с помощью программы типа «Telnet» и взаимодействовать с командным интерпретатором на сервере.

Когда программа Telnet подключается, она обычно прослушивает эти управляющие сообщения до ответа в натуральной форме и поэтому будет работать с соединениями TCP / socket, которые фактически не используют протокол telnet, возвращаясь к простой исходной трубе. Сервер должен выполнять все эхо-сигналы, буферизацию строк и т. Д.

Таким образом, в вашем случае сервер, скорее всего, использует необработанный поток TCP без каких-либо telnet-escape-последовательностей и, следовательно, нет никакой разницы.

Имейте в виду, что Telnet является протоколом прикладного уровня , а TCP – протоколом транспортного уровня . Telnet использует TCP для передачи данных. Это большое фундаментальное различие между Telnet и TCP.

См. Страницу wiki-страницы модели OSI

Со страницы Википедии на telnet

… Пользовательские данные перемежаются внутри диапазона с информацией управления Telnet …

Итак, чтобы ответить на ваш вопрос, да, telnet отличается от сырого сокета.

RFC 854 описывает протокол telnet, если вы хотите попробовать его реализовать, или можете использовать telnetlib, если вы предпочитаете существующий клиент python.

  • Написание telnet-клиента
  • Python telnetlib: удивительная проблема
  • как отправить ключ F2 на удаленный хост с помощью python
  • Python - наследование от классов старого стиля
  • Почему я получаю это сообщение об ошибке при использовании Telnet в оболочке Python
  • Python - лучший язык программирования в мире.