Как сервер Telnet взаимодействует с клиентом?
-
04-07-2019 - |
Вопрос
Я хочу написать приложение на C #, где оно подключается к серверу telnet и взаимодействует с сервером. Мне было интересно, как сервер Telnet отправляет информацию клиенту. Я просмотрел (пролистал) Telnet RFC и посмотрел на входящие пакеты, поступающие в с сервера и до сих пор немного запутался. Может кто-нибудь привести пример того, как сервер перемещает курсор в клиенте telnet и как он может изменять цвета символов? (Пример был бы наиболее ценным)
Обновление I
Вот некоторые дополнительные ресурсы VT100:
<Ол>Обновление II
Имея много исследований и времени, вот что я узнал: Программирование Telnet с использованием C #
Решение
Перемещение курсора и изменение цвета не выполняется протоколом telnet.
Ваш telnet-клиент эмулирует терминал , скорее всего, вариант VT-100. Чтобы переместить курсор и изменить цвет, сервер отправляет escape-последовательности, специфичные для типа эмулируемого терминала (который отправляется при согласовании протокола telnet).
Если вам не нужны эти escape-последовательности, сообщите серверу о согласовании протокола telnet, что вы " тупой " терминала должно быть достаточно. Если вы хотите их (или если сервер предполагает, что у всех есть VT-100 и всегда отправляет их), вам придется внедрить эмулятор терминала VT-100 (или, по крайней мере, достаточно, чтобы отказаться от того, что вы не хотите). р>
Другие советы
A простой поиск в Google показывает множество клиентов Telnet (и других сетевых протоколов) с открытым исходным кодом, написанных на C #. Вы можете просто загрузить исходный код в один из них и посмотреть, как они реализуют согласование соединений и команды.
Что касается обработки цветов курсора и текста и т. д., то теперь вы говорите об эмуляции терминала. Для этого вам понадобится библиотека. Это выглядит как хорошее место для начала.