Как сервер Telnet взаимодействует с клиентом? - PullRequest
4 голосов
/ 24 октября 2008

Я хочу написать приложение на C #, где оно подключается к серверу telnet и взаимодействует с сервером. Мне было интересно, как сервер Telnet отправляет информацию клиенту. Я посмотрел (просмотрел) Telnet RFC и посмотрел на входящие пакеты, поступающие с сервера, и все еще немного запутался. Может кто-нибудь привести пример того, как сервер перемещает курсор в клиенте telnet и как он может изменять цвета символов? (Пример был бы очень признателен)

Обновление I

Вот некоторые дополнительные ресурсы VT100:

  1. Управление терминалами ANSI / VT100
  2. vt100_codes_news.txt

Обновление II

Имея много исследований и времени, вот что я обнаружил: Программирование Telnet с использованием C #

Ответы [ 3 ]

7 голосов
/ 24 октября 2008

Перемещение курсора и изменение цвета не выполняется протоколом telnet.

Ваш telnet-клиент эмулирует терминал , скорее всего, вариант VT-100. Чтобы переместить курсор и изменить цвет, сервер отправляет escape-последовательности, специфичные для типа эмулируемого терминала (который отправляется при согласовании протокола telnet).

Если вам не нужны эти escape-последовательности, достаточно сообщить серверу при согласовании протокола telnet, что вы «тупой» терминал. Если вы хотите их (или если сервер предполагает, что у всех есть VT-100 и всегда отправляет их), вам придется внедрить эмулятор терминала VT-100 (или, по крайней мере, достаточно, чтобы отказаться от того, что вы не хотите). 1007 *

2 голосов
/ 24 октября 2008

Что касается обработки курсора, цвета текста и т. Д., То теперь вы говорите об эмуляции терминала. Для этого вам понадобится библиотека. Это выглядит как хорошее место для начала.

2 голосов
/ 24 октября 2008

A простой поиск в Google показывает множество клиентов Telnet (и других сетевых протоколов) с открытым исходным кодом, написанных на C #. Вы можете просто загрузить исходный код на один и посмотреть, как они реализуют согласование соединения и команды.

...