微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby行编辑telnet服务器

如何解决Ruby行编辑telnet服务器

| 我正在Ruby中实现一个小的telnet服务器。我当前面临的问题是我想添加阅读行支持,以便获得制表符完成和命令行历史记录支持。我看过Readline库,但似乎只能通过stdin来工作。在Ruby中有什么方法可以做到这一点(我注意到Python的解决方案)?     

解决方法

        您可以通过将管道插入readline来实现。这是使用ri readline文档中的
while
循环的示例,该循环仅将
command 1
command2
command 3
发送到readline。
require \'readline\'

rd,wr = IO.pipe

(1..3).each do |i|
  wr.puts \"command #{i}\"
end
wr.close

Readline.input = rd
while buf = Readline.readline(\'\',true)
  p Readline::HISTORY.to_a
  print(\"-> \",buf,\"\\n\")
end
输出:
[\"command 1\"]
-> command 1
[\"command 1\",\"command 2\"]
-> command 2
[\"command 1\",\"command 2\",\"command 3\"]
-> command 3
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。