Я использую учебное пособие EventMachine в качестве отправной точки для экспериментов с отправкой/получением двоичных данных. Образец кода:Eventmachine: Escapes полученные двоичные данные
#!/usr/bin/env ruby
require 'rubygems' # or use Bundler.setup
require 'eventmachine'
class EchoServer < EM::Connection
def receive_data(data)
puts data
send_data(data)
end
end
EventMachine.run do
# hit Control + C to stop
Signal.trap("INT") { EventMachine.stop }
Signal.trap("TERM") { EventMachine.stop }
EventMachine.start_server("0.0.0.0", 10000, EchoServer)
end
Я использую telent для подключения к EM сервера
telent -8 localhost:10000
шлю следующие данные на сервер EM:
\x17\xEB\xB3\b\x05\x00\x00\x00\x01\x00\x00\x89Bo\xAF
EM печатает это:
\\x17\\xEB\\xB3\\b\\x05\\x00\\x00\\x00\\x01\\x00\\x00\\x89Bo\\xAF\r\n
По какой-то причине, он ускользает от косых черт и добавляет \r\n
к полученным данным.
Как остановить EM от экранирования данных и просто принять исходный двоичный файл, который был отправлен на него?