Restarting a Twisted-python Reactor after an unsuccessful connection
Question: I am writing a server with multiple clients. When a client starts, the server
may not yet be working. So a `reactor.connectTCP` may fail (no receiving end).
Currently I'm solving this by looping on a `reactor.run`, i.e.:

  1. connect to server
  2. reactor.run
  3. if fails, repeat

I understand this is not the way to do it in twisted. How can I do it then?


Answer: You can always try to reconnect within your `connectionLost` handler, for
example:

    
    
    from twisted.internet.protocol import ClientFactory
    
    class EchoClientFactory(ClientFactory):
        def clientConnectionLost(self, connector, reason):
            connector.connect()
    

There is also even a built-in
[`ReconnectingClientFactory`](http://twistedmatrix.com/documents/10.2.0/api/twisted.internet.protocol.ReconnectingClientFactory.html).
See also: this blurb on
[reconnection](http://twistedmatrix.com/documents/current/core/howto/clients.html#auto4).

