It's completely impossible if you simply don't have the necessary access. Not everybody can administer all firewalls upstream from them.
Nor can everyone control whether their connection supports v6, unfortunately.
Nor can everyone control whether their connection supports v6, unfortunately.
I’ve also never seen it work for TCP in practice, and not everybody should have to roll their own UDP wrapper for their TCP-expecting application.
The complexity makes sense if you need to transport a lot of data peer-to-peer or the lowest possible latency, but if you don't, you might as well use that coordination server (which outbound-only clients are connecting to) for payload communication as well.