Making UDP client reusable and async