是否可以从缓冲区中删除 telnet 会话中的输入行,所以当您按下回车键时,您键入的文本会被删除,但仍会发送到 telnet 服务器?
我知道有一种方法可以发送某个字符,将光标移动到行首,然后用新的字符覆盖该行,但是由于新的行字符被放入缓冲区,我不能过去. 有没有办法解决这个问题?
示例:(第二行是用户输入)
Welcome to my imba text game!
pick up axe
然后按回车键,屏幕缓冲区显示:
Welcome to my imba mud game!
[You picked up the axe]
更新:
我认为关键是将telnet客户端设置为不回显本地输入的某种模式。我发现向客户端发送一些魔法字符可以改变模式。我找到了这个例子,但我不知道它是什么意思,但它阻止了输入在 telnet 客户端中显示。然而,输入永远不会发送到服务器,所以它只是答案的一半。
socket.send("\377\375\042\377\373\001")
也许是因为我正在逐行读取输入。我希望它被逐字符读取。不知道如何修改它来做到这一点:
fileobj = socket.makefile()
while True:
line = fileobj.readline()
...