I am coding a program that hosts a game server on a particular port that isn’t guaranteed to be exposed by the client’s router. Considering that doing port forwarding programmatically seems rather difficult as Upnp isn’t enabled by default in most routers, I was thinking of starting a P2P server on the machine that hosts the match so that it can receive data from other clients that want to play. Would I then be able to relay the data received from the P2P server to the UDP server? Is there a better solution I’m not aware of?