add uv udp try send

Please review the commits and give me comments on them.
What do I have to do with the `do { } while (0) ?`