Чем telnet отличается от необработанного tcp соединения
Я пытаюсь отправить команды на сервер с помощью скрипта python. Я вижу, что соединение с сокетом устанавливается на сервере. Но команды, которые я посылаю через, похоже, не проходят(сервер делает чтение на сокете). В настоящее время сервер поддерживает интерпретатор команд telnet. т. е.: вы телнете на командный адрес и порт, и вы можете начать отправку строковые команды. Мой вопрос заключается в том, есть ли что-то принципиально отличное от отправки строк через сокет tcp, как против использования telnet. Я использовал как необработанные гнезда, так и скрученный каркас.
3 ответа:
Телнет - это способ передачи управляющей информации о канале связи. Он определяет буферизацию строк, Эхо символов и т. д. и выполняется через серию сообщений will / wont / do/dont при запуске соединения (и, в редких случаях, во время сеанса).
Это, вероятно, не то, что означает ваша документация сервера. Вместо этого, вероятно, это означает, что вы можете открыть TCP-сокет для порта с помощью программы, такой как "Telnet", и взаимодействовать с интерпретатором команд на сервер.
Когда программа Telnet подключается, она обычно прослушивает эти управляющие сообщения, прежде чем ответить в натуре, и поэтому будет работать с соединениями TCP/socket, которые на самом деле не используют протокол telnet, возвращаясь к простому необработанному каналу. Сервер должен выполнять все Эхо символов, буферизацию строк и т. д.
Таким образом, в вашем случае сервер, скорее всего, использует необработанный поток TCP без escape-последовательностей telnet, и поэтому нет никакой разницы.
Имейте в виду, что Telnet-это протокол прикладного уровня, а TCP-протокол транспортного уровня. Telnet использует TCP для передачи данных. Это большая фундаментальная разница между Telnet и TCP.
Видишь: страница Википедии модели OSI
Со страницы Википедии в telnet
...Пользовательские данные перемежаются внутри полосы с управляющей информацией Telnet...
Итак, чтобы ответить на ваш вопрос, да, telnet действительно отличается от raw-сокета.
RFC 854 описывает протокол telnet, если вы хотите попробовать его реализовать, или вы можете использовать telnetlib, Если вы предпочитаете существующий клиент python.