    # File lib/active_support/vendor/memcache-client-1.5.1/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