gpt4 book ai didi

python - 删除 telnet session 中的输入行

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:11 25 4
gpt4 key购买 nike

是否可以从缓冲区中删除 telnet session 中的输入行,这样当您按 Enter 键时,您键入的文本将被删除,但仍会发送到 telnet 服务器?

我知道有一种方法可以发送特定的字符,将光标移动到行的开头,然后用新的字符覆盖该行,但是由于新的行字符被放入缓冲区,所以我不能过去吧。有办法解决这个问题吗?

示例:(第二行是用户输入)

Welcome to my imba text game!
pick up axe

然后按 Enter 键,屏幕缓冲区会显示:

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()
...

最佳答案

我认为,这个问题与gevent没有特殊的联系,因为它的socket API与原始的socket模块类似。而且这个问题不受 gevent 的准并行 greenletes 执行的影响。尝试使用socket.recv()而不是fileobj.readline()。

关于python - 删除 telnet session 中的输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com