# File tokyotyrant.rb, line 495
    def fwmkeys(prefix, max = -1)
      prefix = _argstr(prefix)
      max = _argnum(max)
      if !@sock
        @ecode = EINVALID
        return Array::new
      end
      sbuf = [0xC8, 0x58, prefix.length, max].pack("CCNN")
      sbuf += prefix
      if !_send(sbuf)
        @ecode = ESEND
        return Array::new
      end
      code = _recvcode
      if code == -1
        @ecode = ERECV
        return Array::new
      end
      if code != 0
        @ecode = ENOREC
        return Array::new
      end
      knum = _recvint32
      if knum < 0
        @ecode = ERECV
        return Array::new
      end
      keys = Array::new
      for i in 1..knum
        ksiz = _recvint32()
        if ksiz < 0
          @ecode = ERECV
          return Array::new
        end
        kbuf = _recv(ksiz)
        if !kbuf
          @ecode = ERECV
          return Array::new
        end
        keys.push(_retstr(kbuf))
      end
      return keys
    end