1. 目的
希望在 telnet 自己 TCP 服务器程序的界面上实现 shell 一样的自动补齐和历史记录的功能。
2. 问题
程序的远程登陆的 telnet 界面通常是通过一个 TCP 服务器来实现的,但是如果想在这个 TCP 服务器端实现客户端登陆界面的自动补齐和历史记录的功能会有如下的问题:
( 1 )常见的 telnet 客户端是以行模式发送数据的,即输入一个字符串后再按一个回车,整个数据才会被发送到服务器端。
( 2 )常见的 telnet 客户端是自动回显的,即你在键盘上输入一个字符后,客户端自己将这个字符显示在客户端界面上,而不是显示的从服务器端发送过来的数据。
默认这样做的原因,是为了简化了客户端和服务器端的实现。但是如果希望能够让客户端能够具有 shell 一样的自动补齐和历史记录功能则无法实现,原因如下:
( 1 )自动补齐功能一般是按 tab 键后按现有输入的部分进行匹配的,不能等按回车,因为按回车一般表示客户端输入完成,等待服务器处理的结果。应该是按下每个按键都发送一次。
( 2