0
我使用EventMachine教程作爲實驗發送/接收二進制數據的起點。示例代碼:Eventmachine:轉義接收二進制數據
#!/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轉義數據並接受發送給它的原始二進制文件?