Ruby:使用ruby连接到打印机

时间:2016-07-22 09:49:40

标签: ruby-on-rails ruby sockets printing telnet

我正在尝试使用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库。我想使用ruby套接字编程执行打印机命令。

我试过下面的代码,但它没有工作

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

这可能是什么原因?为什么使用telnet库的代码工作,并且TCP套接字编程的代码无效。

1 个答案:

答案 0 :(得分:1)

打印机似乎正在使用Telnet协议,描述为here。 Telnet处于更高的抽象级别,并使用TCP传输数据。您尝试通过tcp发送消息,而在打印机需要telnet连接时,无需建立任何telnet连接,以便接收命令。