code: def emit(self, batch):
          
          udp_socket = None
          try:
              self.client._seqid = 0
              #  truncate and reset the position of BytesIO object
              self.buffer._buffer.truncate(0)
              self.buffer._buffer.seek(0)
              self.client.emitBatch(batch)
              buff = self.buffer.getvalue()
              if len(buff) > self.max_packet_size:
                  logging.warn('Data exceeds the max UDP packet size; size {},\
                          max {}'.format(len(buff), self.max_packet_size))
              else:
                  udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                  udp_socket.sendto(buff, self.address)
  
          except Exception as e:  # pragma: NO COVER
              logging.error(getattr(e, 'message', e))
  
          finally:
              if udp_socket is not None:
                  udp_socket.close()
docs: :type batch:
              :class:`~opencensus.ext.jaeger.trace_exporter.gen.jaeger.Batch`
          :param batch: Object to emit Jaeger spans.