Назад | Перейти на главную страницу

Как программы на основе telnet сообщают свой тип терминала серверу сокетов?

Я написал сценарий, названный tcpserver что в значительной степени использует tput и подобные команды. Эти команды должны знать, как правильно писать в терминал и полагаться на TERM переменная для получения этой информации. Прямо сейчас TERM переменная наследуется от консоли tcpserver запущен, и я хотел бы это изменить.

Мои клиенты - это терминальные программы на основе Telnet, например netcat и telnet. Как я могу заставить эти программы сообщать тип терминала пользователя удаленному серверу?

То, что вы ищете, - это то, что известно как «согласование типа терминала», часто сокращенно «тип термина». Это позволяет клиентскому программному обеспечению, поддерживающему telnet, согласовывать тип терминала вне диапазона с помощью экранирования telnet.

Для клиентской половины, telnet автоматически попытается согласовать тип терминала. netcat с другой стороны, не предполагает, что удаленный сервер по умолчанию понимает экранирование telnet, и вам нужно будет запустить его с -t опция для включения переговоров по telnet.

Что касается серверной половины, я считаю, что это зависит от вас, и это выходит за рамки предмета ServerFault. Чтение RFC1091 было бы хорошим началом.