Python Twisted如何在Telnet或SSH中控制缓冲/非缓冲输入?

2024-06-16 12:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个Python Twisted服务器,它为客户机提供文本服务,我希望客户机能够写回文本来操作服务器。我将使用Telnet,客户机将使用Putty或类似的终端……如果使用SSH比较容易的话,我也愿意使用SSH。在

我的问题是,如何配置服务器,以便客户机可以发送原始的、无缓冲的字节(我不希望用户在命令后按enter键)?另外,有没有一种方法可以在会话期间更改配置,以便我可以在缓冲/无缓冲字节之间来回更改?在

我想是Telnet选项34“Linemode”--http://www.freesoft.org/CIE/RFC/1700/10.htm

我只是不知道如何设置Twisted来使用它。。。在

任何帮助设置这个Telnet或SSH是感谢的!!! 谢谢!在


Tags: 方法用户文本命令服务器终端客户机字节
1条回答
网友
1楼 · 发布于 2024-06-16 12:33:08

twisted.conch.telnet.TelnetBootstrapProtocol是如何进行期权协商的一个很好的例子。它还碰巧执行一些LINEMODE协商。有关详细信息,请看the implementation,但下面是一个片段,它显示服务器要求客户机启用linemode、naws和sga:

for opt in (LINEMODE, NAWS, SGA):
    self.transport.do(opt).addErrback(log.err)

如果协商失败,一个真正的服务器可能希望比log.err做更多的错误处理,因为客户机将处于可能不适合与服务器一起使用的状态。在

同时看看Twisted附带的一些funky terminal demos。它们一次进行大量字符处理。在

相关问题 更多 >