'Caches server name and (optionally) port to connect to. "debug" parameter specifies
the debug IDs that will go into debug output. You can either specifiy an "include"
or "exclude" list. The latter is done via adding "always" pseudo-ID to the list.
Full list: [\'nodebuilder\', \'dispatcher\', \'gen_auth\', \'SASL_auth\', \'bind\', \'socket\',
\'CONNECTproxy\', \'TLS\', \'roster\', \'browser\', \'ibb\'] .'

def __init__(self, server, port=5222, debug=['always', 'nodebuilder']):

    if (self.__class__.__name__ == 'Client'):
        (self.Namespace, self.DBG) = ('jabber:client', DBG_CLIENT)
    elif (self.__class__.__name__ == 'Component'):
        (self.Namespace, self.DBG) = (dispatcher.NS_COMPONENT_ACCEPT, DBG_COMPONENT)
    self.defaultNamespace = self.Namespace
    self.disconnect_handlers = []
    self.Server = server
    self.Port = port
    if (debug and (type(debug) != list)):
        debug = ['always', 'nodebuilder']
    self._DEBUG = Debug.Debug(debug)
    self.DEBUG = self._DEBUG.Show
    self.debug_flags = self._DEBUG.debug_flags
    self.debug_flags.append(self.DBG)
    self._owner = self
    self._registered_name = None
    self.RegisterDisconnectHandler(self.DisconnectHandler)
    self.connected = ''
    self._route = 0
