Don't think of host connection as a one-time setup.
More...
Don't think of host connection as a one-time setup.
Instead, each client tries to maintain a "fully connected" state. If a client finds that it isn't in the state it needs to be, it will communicate with the server to build up the "fully connected" state. This way, dealing with dropped connections is straightforward (just reconnect and rebuild state when the network comes back), and it is the same code path as the initial connection.