# File lib/active_support/vendor/memcache-client-1.5.0/memcache.rb, line 583
  def cache_get(server, cache_key)
    socket = server.socket
    socket.write "get #{cache_key}\r\n"
    keyline = socket.gets # "VALUE <key> <flags> <bytes>\r\n"

    if keyline.nil? then
      server.close
      raise MemCacheError, "lost connection to #{server.host}:#{server.port}"
    end

    raise_on_error_response! keyline
    return nil if keyline == "END\r\n"

    unless keyline =~ /(\d+)\r/ then
      server.close
      raise MemCacheError, "unexpected response #{keyline.inspect}"
    end
    value = socket.read $1.to_i
    socket.read 2 # "\r\n"
    socket.gets   # "END\r\n"
    return value
  end