Я использую библиотеку net / telnet в ruby для чтения данных с сервера. Он отправляет команды как целые строки с новой строкой в конце, поэтому я подумал, что сделаю это:
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 просто отправить мне текст с разделителями на новых строках? Или другой способ исправить это?
Спасибо,
Стюарт