You should understand where the echo is coming from. TCP connections and java InputStreams don't provide echo on their own. The telnet program that the user runs normally starts in "local echo" mode, meaning that it echoes everything typed by the user to the user's screen. When the telnet client connects to an actual telnet server, it commonly negotiates "remote echo" mode in which case the remote system provides the echo. When telnet connects to something else, like an HTTP or SMTP server, it just stays in local echo mode.
The user can issue a command to turn off local echo in the client, but it wouldn't be very user-friendly to require your users to do that. As the other answer says, if you want to switch echoing on and off, you will need to enhance your server to support the telnet protocol, then negotiate remote echo with clients.
If you do this, you'll also encounter the issue of line-at-a-time vs. character-at-a-time. Telnet starts in line-at-a-time mode. It honors line-editing keys like backspace locally, and only sends the line to the server when the user hits return. If you're doing remote echo, then you need to echo characters as the user types them, not after he hits return. So you'll have to support character-at-a-time and implement line editing in the server.
You should look closely at the telnet server program on your server host. It might be possible to use the existing telnet server as a frontend for your program, rather than reimplementing everything that it does. Good luck.