I very often see "reconnect loops" in various codebases and I wonder are they necessary? Wouldn't the same effect be achieved by for example increasing timeouts or some other connection parameter?
UDP packets require no connection but you still might see some sort of re-synchronization code to reset application state which could be called "reconnect".