Как-то раз, решив сыграть во что-нибудь необычное, я обратил свой взгляд на
MUD'ы — текстовые компьютерные многопользовательские игры с чатом. Играть в них можно как при помощи специализированных клиентов, написанных под конкретные сервера, так и по
telnet'у.
Выбрав один из существующих на данный момент серверов (https://www.bat.org/), я вооружился дефолтным telnet-клиентом под Windows и… Почувствовал разочарование. Нет, дело вовсе не в игре, а в том, как с этой игрой взаимодействует telnet.exe. Печально осознавать, но ни один из вводимых мной символов (имя персонажа, разнообразные действия etc) не отображался на экране консоли. Да, команды отправлялись по нажатию клавиши Enter, но отсутствие даже минимального интерактива делало такую игру практически невозможной (особенно неудобно было удалять введённые ранее символы, ведь приходилось подсчитывать в уме, сколько символов ты уже удалил и на каком находишься в текущий момент).
Недолго думая, я решил попробовать приконнектиться к тому же самому серверу при помощи
putty и… Вот это да! Я вижу вводимые мной символы!
Почему же echo не работает в telnet.exe? Можно ли это каким-то образом исправить? Давайте разберёмся.
Как протекал процесс, и что из этого вышло, читайте под катом. Перед прочтением данной статьи также настоятельно рекомендую ознакомиться с
предыдущими, т.к. в них уже объяснены многие из опущенных здесь моментов.