'Thread entry point.
:return: None'

def run(self):

    try:
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.sock.bind((self._ip_address, self._port))
        self.sock.listen(5)
    except Exception as e:
        msg = ('[w3afAgentServer]    Failed    to    bind    to    %s:%s' % (self._ip_address, self._port))
        msg += ('.    Error:    "%s".' % e)
        raise BaseFrameworkException(msg)
    while self._keep_running:
        try:
            (newsock, address) = self.sock.accept()
        except KeyboardInterrupt as k:
            om.out.console('Exiting.')
            break
        except socket.error:
            pass
        else:
            om.out.debug('[ConnectionManager]    Adding    a    new    connection    to    the    connection    manager.')
            self._connections.append(newsock)
            if (not self._reportedConnection):
                self._reportedConnection = True
                om.out.console('w3afAgent    service    is    up    and    running.')
