We are actually writing the app and we're looking for a way to make it work with all kinds of NAT configurations without having to communicate with any routing/NAT hardware.
UPnP does look pretty cool, I have one question-
Does it work now? I looked at the UPnP.org site and it didn't seem to say whether or not I could write a UPnP-enabled app and have it work right now.
The problem is we're trying to avoid requiring any special firewall hardware and it looks like we'd have to have a UPnP enabled NAT box if we were going to use UPnP (unless, and it's happened before, I am wrong).
We're basically trying to allow two clients to connect to each other when/if they are behind NAT boxes. We're pretty early in the brainstorming phase, but ideas we've had include:
-Using UDP to tunnel through (as there are myriad methods for making UDP connections through NAT which don't work well for TCP)
-Using a relay (obviously not a great solution as it would be a big slow mess under load)
There are others but I can't seem to locate my notes. How do those lucky Kazaa, eDonkey, and AIM users surmount the NAT TCP problem?
Thanks for your help,
Bill