【发布时间】:2011-10-30 06:40:03
【问题描述】:
我在 ruby 中使用 net/telnet 库从服务器读取数据。它以整行的形式发送命令,最后有一个换行符,所以我想我会这样做:
connection = Net::Telnet.new(options)
connection.waitfor(/\n/) do |txt|
process txt
end
这不起作用,因为它一次向我发送了一大堆行。我可以很容易地解决这个问题:
connection.waitfor(/\n/) do |txt|
txt.split("\n").each do |line|
process line
end
end
除了这也有问题:我发送的字符串几乎总是在末尾包含半个命令。即:如果服务器发送这个:
COMMAND1 option1 option2 option3
COMMAND2 option1 option2 option3
COMMAND3 option1 option2 option3
我会经常得到这个:
COMMAND1 option1 option2 option3
COMMAND2 option1 option2 option3
COMMAND3 opt
然后我将在下一次阅读中获得 COMMAND3 的其余选项以及 COMMAND4。
有什么方法可以让 net/telnet 只向我发送以换行符分隔的文本?或者其他解决方法?
谢谢, 斯图尔特
【问题讨论】: