I have been searching for a simple UDP C++ library that provides reliability for a while now. I have just come across ENet, which looks perfect, except that I can't find any support for NAT hole punching in the documentation. The internet seems to have a few people discussing this, but I have yet to find a definite answer to whether it is possible.
I already have a third party server that is configured to hand out external ips & ports to clients.
If it is possible, can someone give some pseudocode/steps describing the process?
I figured this out. Here's what I did: