Continuously attempt to initially connect when a new connection is made until the connection succeeds
Implement auto-reconnecting for if a connection drops whilst in use
Packets sent whilst (re)connecting will be added to a queue and sent as soon as the connection becomes available