2016-07-22 9 views
2

ルビー言語を使用してプリンタに接続しようとしています。プリンタベンダは、プリンタとの通信に使用できる特定のコマンドを使用しています。Ruby:ルビーを使用してプリンタに接続する

私は、プリンタと通信するためにruby telnetライブラリを使用しています。それは正常に動作しています。以下は、Ruby telnetライブラリを使用して私のために働いているコードです。

require 'net/telnet' 
localhost = Net::Telnet::new("Host" => "192.168.25.168","Port" => 20000, "Timeout" => 15) 
localhost.cmd("MARK START") # starts printer 

上記のコードは完全に機能しますが、私はtelentライブラリを使いたくありません。私は、ルビーソケットプログラミングを使用してプリンタコマンドを実行したい。

私はコードの下にしようとしているが、それはこの理由かもしれない

require 'socket' 
sock = TCPSocket.new('192.168.25.168', 20000) 
sock.write 'MARK START' 
sock.close 

何に動作しません?なぜtelnetライブラリを使ったコードが動作しているのか、TCPソケットプログラミングが動作していないというコードです。

答えて

1

プリンタにはTelnetプロトコルが使用されているようです(here)。 Telnetは、抽象度の高いレベルにあり、TCPを使用してデータを送信します。コマンドを受け取るために、プリンタがtelnet接続を予期している間に、telnet接続が確立されていない状態でtcp経由でメッセージを送信しようとしています。

関連する問題