是否可以从缓冲区中删除telnet会话中的输入行,因此当您按Enter时,您键入的文本被删除,但仍发送到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")
也许是因为我在逐行读取输入。我希望它被char读为char。不知道如何修改这个,虽然这样做:
fileobj = socket.makefile()
while True:
line = fileobj.readline()
...
这不可能,或者是我的问题含糊不清? – oskob 2012-01-08 16:16:43