2011-12-30 7 views
0

これは通常のtelnetまたはruby telnetを介して取得したデータです。telnetプルデータタイムアウトの問題

:これは、それは、すべてのデータを出力して待機し、エラー実行すると

#!/usr/local/bin/ruby 
require 'net/telnet' 
localhost = Net::Telnet::new("Host" => "10.1.1.12", "Timeout" => 10, "Port" => 10001) { |resp| print "===> " + resp } 
localhost.cmd("F#1=") do |data| 
    print data 
end 

:私のコード私はそれがEND DATABASEここ

# Manual telnet method 
Trying 10.1.1.12... 
Connected to 10.1.1.12. 
Escape character is '^]'. 
F#1= 
F#1= 
BEGIN DATABASE 

2011-12-29 13:53,1,Hefer Meal,240,247,Z88,1,1 
2011-12-29 13:53,1,Vegetable Oil,30,59,Z88,1,1 
2011-12-29 13:55,2,Vegetable Oil,100,106,530,1,1 
2011-12-29 13:55,2,Steer Meal,800,809,530,1,1 
2011-12-29 13:56,3,Vegetable Oil,150,153,530,1,0 
2011-12-29 13:57,3,Steer Meal,1200,1203,530,1,0 
2011-12-29 14:30,4,Vegetable Oil,17,18,210,1,1 
2011-12-29 14:31,4,Liquid Starter,388,394,210,1,1 
2011-12-29 14:39,5,Hefer Meal,1200,1227,Z88,1,2 
2011-12-29 14:40,6,Hefer Meal,1200,1240,Z88,1,2 
2011-12-29 14:41,7,Hefer Meal,1200,1207,Z88,1,0 
2011-12-29 14:43,8,Hefer Meal,1200,1286,Z88,1,2 
2011-12-29 14:46,9,Vegetable Oil,115,122,530,1,1 
2011-12-29 14:50,9,Steer Meal,920,950,530,1,1 
2011-12-29 14:56,10,Vegetable Oil,47,48,312,1,0 
2011-12-29 14:57,10,Steer Meal,237,261,312,1,1 
2011-12-29 14:58,10,Liquid Starter,389,394,312,1,1 
END DATABASE 

になったときに終了するように指示するかどうかはわからないです

/usr/lib/ruby/1.8/net/telnet.rb:557:in `waitfor': timed out while waiting for more data (Timeout::Error) 

ここからどこに行かなくても、私はthisページで対処方法を見てきましたが、何も見つかりません。

ありがとうございました。

答えて

1

ここでは標準以外のTelnetサーバーを使用しているようです。初期化するときは "Telnetmode"をfalseに設定してください。

localhost = Net::Telnet::new("Host" => "10.1.1.12", "Telnetmode" => false, "Timeout" => 10, "Port" => 10001) { |resp| print "===> " + resp } 
+0

提供されたコードでも同じエラーが発生します。ご協力いただきありがとうございます。他にもありがとうございます。 –

+0

は、ベンダーがtelnetの働き方を変えるようにしたので、コードが助けになりました。ありがとうございました。 –