2
我在ruby中使用net/telnet庫從服務器讀取數據。它發送命令,整行,並在最後一個換行,所以我想我應該這樣做:如何使用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
,然後我會得到的指令代碼的其餘選項在接下來的讀取,與COMMAND4一起。
有沒有什麼辦法可以讓net/telnet發送給我的文本在換行符上分隔?或者另一種解決方法?
感謝, 斯圖爾特