【发布时间】:2013-09-26 09:34:27
【问题描述】:
我在以下位置找到了这样的代码: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] }
我要求的不是 ruby 习语,而是功能方面。
【问题讨论】:
-
这可能会有所帮助:stackoverflow.com/questions/14293926/… 但不是重复的 IMO。
标签: ruby networking server-side