,我發現這樣的代碼:https://github.com/mojombo/proxymachine/瞭解字節解壓
proxy do |data|
return if data.size < 9
v, c, port, o1, o2, o3, o4, user = data.unpack("CCnC4a*")
return { :close => "\0\x5b\0\0\0\0\0\0" } if v != 4 or c != 1
return if ! idx = user.index("\0")
{ :remote => "#{[o1,o2,o3,o4]*'.'}:#{port}",
:reply => "\0\x5a\0\0\0\0\0\0",
:data => data[idx+9..-1] }
end
這是什麼代碼呢?特別是這行:
data.unpack("CCnC4a*")
return { :close => "\0\x5b\0\0\0\0\0\0" } if v != 4 or c != 1
:reply => "\0\x5a\0\0\0\0\0\0", :data => data[idx+9..-1] }
我不要求紅寶石成語,但對於功能性的一面。
這可能有所幫助:http://stackoverflow.com/questions/14293926/how-does-pack-and-unpack-work-in-ruby但不是重複的國際海事組織。 –