Ruby:使用 ruby 连接到打印机

Ruby: Connecting to printer using ruby

我正在尝试使用 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 套接字编程的代码不能工作。

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