我正在尝试使用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套接字编程的代码无效。
答案 0 :(得分:1)
打印机似乎正在使用Telnet协议,描述为here。 Telnet处于更高的抽象级别,并使用TCP传输数据。您尝试通过tcp发送消息,而在打印机需要telnet连接时,无需建立任何telnet连接,以便接收命令。