Computer B is not the router, it is a Computer on the internet, on a separate network (hosted at my office). Computer A is a web app that can be anywhere in the world and is behind a NAT. Computer C is another computer that a user is trying to connect to Computer A and is behind yet another NAT.
Without setting up port forwarding on ComputerA's network, Computer C cannot access it, even with port 80, or 8080 since the router (on the ComputerC's newtwork) has no way to know where to point it to. Hence the reason to create a TCP Hole punch.
Here's another link that explains what I am trying to do I wish it was simpler. UPnP does not work reliably - at least for me and one other user of Xojo, maybe someone else has gotten it to work?
Any alternate solutions would be appreciated!