I started a small spike to see what can be done in terms of device intercommunication over the internet. I started out with the SimpleHttpListener NuGet which seems to work quite well, other than in Android projects I get a weird runtime error that seems to stem from the runtime picking up the wrong library (bait 'n' switch error).
Anyway, when I tested it on iOS in my own network it worked fine. My devices successfully communicated without the use of a server function. But when I turned off WiFi and pushed the iPhone onto the cellular network, restarted the app and tried to send requests to the new address the device no longer receives anything. Just to make sure it wasn't the SimpleHttpListener component failing I tried with TcpListener, straight out of the box, but I get the same result.
My question is: Is there anything I need to do to enable apps to effectively act as "servers" in this manner, listening for TCP traffic?