Вы должны понимать, откуда исходит эхо. TCP-соединения и java InputStreams не обеспечивают эхо самостоятельно. Программа telnet, которую пользователь обычно запускает, запускается в режиме «локального эха», что означает, что она выводит на экран все, что введено пользователем, на экран пользователя. Когда клиент telnet подключается к реальному серверу telnet, он обычно согласовывает режим «удаленного эхо», и в этом случае удаленная система предоставляет эхо. Когда telnet подключается к чему-то другому, например к серверу HTTP или SMTP, он просто остается в режиме локального эха.
Пользователь может выдать команду, чтобы отключить локальное эхо в клиенте, но потребовать от пользователей этого не очень удобно. Как говорится в другом ответе, если вы хотите включить или выключить эхо, вам нужно улучшить сервер для поддержки протокола telnet, а затем договориться об удаленном эхо с клиентами.
Если вы сделаете это, вы также столкнетесь с проблемой «строка за разом» и «символ за временем». Telnet запускается в построчном режиме. Он учитывает ключи редактирования строки, такие как backspace, локально и отправляет строку на сервер только тогда, когда пользователь нажимает return. Если вы делаете удаленное эхо, то вам нужно отображать символы по мере их ввода пользователем, а не после того, как он нажмет return. Таким образом, вам придется поддерживать посимвольные символы и осуществлять редактирование строк на сервере.
Вам следует внимательно изучить программу сервера telnet на хосте вашего сервера. Может быть возможно использовать существующий сервер telnet в качестве интерфейса для вашей программы, а не переопределять все, что она делает. Удачи.