code: func (s *TCP) Flush() error {
  	defer func() {
  		s.frames = s.frames[:0]
  	}()
  	c, err := net.DialTimeout("tcp", s.address, time.Second)
  	if err != nil {
  		return err
  	}
  	enc, err := fs.NewEncoder(c, &fs.EncoderOptions{
  		ContentType:   []byte("protobuf:dnstap.Dnstap"),
  		Bidirectional: true,
  	})
  	if err != nil {
  		return err
  	}
  	for _, frame := range s.frames {
  		if _, err = enc.Write(frame); err != nil {
  			return err
  		}
  	}
  	return enc.Flush()
  }
docs: // Flush the remaining frames.