code: def recv_file_from_remote(dev, src_filename, dst_file, filesize):
      
      bytes_remaining = filesize
      if not HAS_BUFFER:
          bytes_remaining *= 2  # hexlify makes each byte into 2
      buf_size = BUFFER_SIZE
      write_buf = bytearray(buf_size)
      while bytes_remaining > 0:
          read_size = min(bytes_remaining, buf_size)
          buf_remaining = read_size
          buf_index = 0
          while buf_remaining > 0:
              read_buf = dev.read(buf_remaining)
              bytes_read = len(read_buf)
              if bytes_read:
                  write_buf[buf_index:bytes_read] = read_buf[0:bytes_read]
                  buf_index += bytes_read
                  buf_remaining -= bytes_read
          if HAS_BUFFER:
              dst_file.write(write_buf[0:read_size])
          else:
              dst_file.write(binascii.unhexlify(write_buf[0:read_size]))
          # Send an ack to the remote as a form of flow control
          dev.write(b'\x06')   # ASCII ACK is 0x06
          bytes_remaining -= read_size
docs: Intended to be passed to the `remote` function as the xfer_func argument.
         Matches up with send_file_to_host.