more fault tolerance improvements: when starting the client, it will try to connect to the server until it succeeds instead of throwing an uncatched exception