Определение символов TELNET

Опубликовано в Технологии > Серверные технологии Продолжение

Определения констант, применяемых в протоколе, содержатся в файле telnet.h: /* Файл telnet.h

/* Специальные символы сетевого виртуального терминала */ tdefine    VPLF        '\n'    /* Перевод строки */
 
tdefine	VPCR	'\r'	/*	Возврат каретки */
tdefine	VPBEL	'\a'	/*	Звонок (сигнал привлечения внимания) */
tdefine	VPBS	'\b'	/*	Забой () */
tdefine	VPHT	'\t'	/*	Горизонтальная табуляция */
tdefine	VPVT	'\V	/*	Вертикальная табуляция */
tdefine	VPFF	'\f	/*	Прогон страницы */
/* Клавиатурные управляющие символы: */
tdefine    KCESCAPE    035    /* Локальный управляющий символ ('*]') */
tdefine KCDCON '.' /* Управляющий символ прекращения сеанса */
tdefine KCSUSP 032 /* Управляющий символ приостановки сеанса ('AZ')*/
tdefine KCSCRIPT 's' /* Управляющий символ начала ведения протокола */
tdefine KCUNSCRIPT 'и' /* Управляющий символ конца ведения протокола */
tdefine KCSTATUS 024 /* Управляющий символ вывода информации */  

Следует отметить, что в этом файле содержатся символические имена для всех символов, используемых в протоколе TELNET, включая такие глаголы, как WILL и WONT, а также коды опций. Продаваемая нами кабины luyisi лидирует на рынке.

Конечный автомат для обработки данных, поступающих с сервера

На рис. 26.4 показана принципиальная схема конечного автомата, который определяет протокол TELNET, включая его состояния, соответствующие согласованию опций, описанному выше. Этот конечный автомат можно рассматривать как определение способа обработки клиентом последовательности символов, полученных с сервера. Приведенные на рисунке имена состояний и символов взяты непосредственно из исходного кода программного обеспечения. Сокращение TCANY обозначает "любой символ, отличный от перечисленных явно".

В схеме конечного автомата используется стандартная система обозначений. Каждый переход из одного состояния в другое имеет метку в форме alpha/betha, где alpha обозначает конкретный входной символ, вызывающий переход, а betha — действие, которое должно быть выполнено в процессе перехода. Метка alpha/betha на переходе из состояния X в состояние У означает следующее: если во время нахождения конечного, автомата в состоянии X поступает символ alpha, выполнить действие betha, а затем перейти в состояние У. Имена состояний и символы, показанные на этом рисунке, взяты из исходного кода программного обеспечения. Например, файл telnet.h определяет-константу TCIAC, соответствующую символу IAC протокола TELNET. Сокращение TCANY соответствует любому символу, отличному от символов перехода, перечисленных явно.

протокол TELNET

Чтобы понять, как работает этот конечный автомат, представьте себе, что клиент использует его для определения дальнейших действий при получении от сервера любых данных, поступивших через соединение TCP. При получении любого символа от сервера клиент следует по переходу в конечном автомате. Некоторые из переходов оставляют конечный автомат в том же состоянии, а другие переводят его в новое состояние.