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 连接以接收命令。
我正在尝试使用 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 连接以接收命令。