在telnet中清除输出

jur*_*iks 4 java telnet

有没有办法让telnet应用程序清除输出客户端(使用Java Socket连接+缓冲区)?例如,程序向连接的用户查询登录名和密码,当他们成功登录时,我会cls为Windows或clearLinux做.

sst*_*dal 7

telnet应用程序是终端模拟器.在很久以前,与计算机通信的唯一方法是使用具有纯文本屏幕和键盘的终端.终端将您输入的所有内容发送到计算机.计算机发回了打印在屏幕上的字符.就像telnet一样.DEC创建了一系列名为VT52,VT100等的终端.他们能够解释特殊的控制序列,以便计算机可以给终端提供更多花哨的指令.这些控制序列由ANSI标准化,现在称为ANSI转义码.了解VT100转义码的终端仿真器称为VT100终端仿真器.

您可以在维基百科和其他地方查找ansi转义码.它们都以转义的字符代码开头,并由控制字符跟随.清除屏幕的控制字符是"2J".因此,您需要做的是将此字符串从您的服务器发送到telnet客户端:

myOutputStream.print("\u001B[2J");
myOutputStream.flush();
Run Code Online (Sandbox Code Playgroud)

您也可以发送其他控制字符.尝试"\ u001B [7m"来反转屏幕.