code: def connect(
              self, server, port, nickname, password=None, username=None,
              ircname=None, connect_factory=connection.Factory()):
          
          log.debug(
              "connect(server=%r, port=%r, nickname=%r, ...)", server,
              port, nickname)
  
          if self.connected:
              self.disconnect("Changing servers")
  
          self.buffer = self.buffer_class()
          self.handlers = {}
          self.real_server_name = ""
          self.real_nickname = nickname
          self.server = server
          self.port = port
          self.server_address = (server, port)
          self.nickname = nickname
          self.username = username or nickname
          self.ircname = ircname or nickname
          self.password = password
          self.connect_factory = connect_factory
          try:
              self.socket = self.connect_factory(self.server_address)
          except socket.error as ex:
              raise ServerConnectionError("Couldn't connect to socket: %s" % ex)
          self.connected = True
          self.reactor._on_connect(self.socket)
  
          # Log on...
          if self.password:
              self.pass_(self.password)
          self.nick(self.nickname)
          self.user(self.username, self.ircname)
          return self
docs: Connect/reconnect to a server.
  
          Arguments:
  
          * server - Server name
          * port - Port number
          * nickname - The nickname
          * password - Password (if any)
          * username - The username
          * ircname - The IRC name ("realname")
          * server_address - The remote host/port of the server
          * connect_factory - A callable that takes the server address and
            returns a connection (with a socket interface)
  
          This function can be called to reconnect a closed connection.
  
          Returns the ServerConnection object.