Python 行编辑 Telnet 服务器

3 投票
3 回答
1697 浏览
提问于 2025-04-16 02:21

我正在用Python创建一个服务器(具体做什么不重要),但我希望它能接受telnet连接,并提供一个命令行界面,支持行编辑功能(比如按Tab键补全、Emacs/vi模式等),并且每个会话都有自己的历史记录。我已经成功创建了telnet会话,关闭了行模式并启用了服务器回显。

我最初的想法是使用readline模块,但Python的readline模块似乎只适用于标准输入的单个会话;而且查看底层的readline库后,确实是这样工作的。

不过,我想做的是为每个客户端创建一个实例(你可以叫它状态),当接收到字符(字节)时,就把它们传递给这个状态。一旦生成了一整行,就把它传给服务器,服务器可以解析它。

所以我想知道有没有什么库可以处理这种情况,甚至是C语言的库也可以。

补充说明:为了更清楚,我已经有一个完全功能的服务器了,但我想把telnet接口作为一个附加功能,用来重新配置、获取信息等。

3 个回答

0

你需要使用 telnetlib 这个库,详细信息可以查看这里:http://docs.python.org/library/telnetlib.html?highlight=telnet#module-telnetlib

1

也许cmd这个库会对你有帮助或者感兴趣吧?

2

听起来你已经搞定了TELNET的部分,现在你想要添加一些在BASH、KSH等命令行中常见的功能。我自己没有试过,但你可以看看这个叫做 shython 的东西:“它是一个多功能的命令行,结合了bash和python的特点。”

撰写回答