IMO, a constructor should only construct, and not do anything else. Otherwise, your subclassing classes will be forced to call your constructor, and that's a major pain in the ass if the subclass wants to do MI.
so, to sum it up. 1 constructor that does just that, construct. 1 method to add a connection, and 1 final method which is called once that starts the main loop and gets everything running?
I'd start the main loop from the main program. Calling a method in a connection object (which one?) to start the main loop doesn't sound logical to me.