code: def attached_socket(self, *args, **kwargs):
          
          try:
              sock = self.attach(*args, **kwargs)
              yield sock
          finally:
              sock.shutdown(socket.SHUT_RDWR)
              sock.close()
docs: Opens a raw socket in a ``with`` block to write data to Splunk.
  
          The arguments are identical to those for :meth:`attach`. The socket is
          automatically closed at the end of the ``with`` block, even if an
          exception is raised in the block.
  
          :param host: The host value for events written to the stream.
          :type host: ``string``
          :param source: The source value for events written to the stream.
          :type source: ``string``
          :param sourcetype: The sourcetype value for events written to the
              stream.
          :type sourcetype: ``string``
  
          :returns: Nothing.
  
          **Example**::
  
              import splunklib.client as client
              s = client.connect(...)
              index = s.indexes['some_index']
              with index.attached_socket(sourcetype='test') as sock:
                  sock.send('Test event\\r\\n')