我有一个套接字应用程序.客户端连接的套接字使用不允许搜索的NetworkStream.
那么,当他们telnet到我的套接字服务器时,如何屏蔽用户输入,因为NetworkStream不提供搜索?
1.)它需要与第三方telnet一起工作,即:我不创建telnet客户端2.)我可以满足于在telnet客户端显示的任何内容,但更喜欢屏蔽
提前致谢.
我将假设您正在利用本地回声(默认情况下telnet客户端会这样做.)telnet协议有一个带外控制命令结构,您可以使用它来切换它(参见RFC 854) .特别是,您需要暂时关闭本地回声,因此用户的telnet客户端不会简单地将字符放在屏幕上.当您希望客户端停止显示字符然后再发送IAC WILL ECHO命令时,可以通过发送IAC WILL NOT ECHO命令来执行此操作(请参阅RFC 857.)
基本上,你只需要发送三个字节:0xFF 0xFC 0x01以关闭echo,以及三个字节:0xFF 0xFB 0x01以重新打开echo.
如果你想要,当你关闭回声时,你可以为你阅读的每个角色向用户发送一个'*'字符.这将给他们指示他们的角色正在接收,虽然对于密码,我更喜欢不给出回声.