My diagram is such as the matchmaking server and my phone are on the same router. I'm trying to play someone behind another router.
I assume that because of the server and my phone being on the same end, that connecting to the server, the routing/translation is different. Here is what I mean:
I know for a fact that both phones/routers can holepunch.
For each new port I can predict the next port to open.
I test this by opening ports in sequence and pinging the server. Each new port is the old one plus 256 for both routers.
So now I am at the point that I know both peoples next ports to open up. I don't do anything with those ports except try to connect to each other. They never send to anyone else but each other, and yet I can never have them talk to each other.
The only thing I can think of is that my phone is on the same LAN as the server and therefore those ports that the servers sees are some kind of internal ports, and that when I actually go outside the network, those ports would be completely different. That's the only thing I can think of. And when I send to the server I use the routers internet IP and not 192.168.0.x.
Anyone? I'm getting desperate.
Another small diagram:
Internal phone ports vs What the server sees. Guess next port and send each player what those ports should be.
port: 35000 -> 48270 || 35001 -> 48526 || 35002 -> 48782 || next port I save is 49038
port: 35000 -> 48370 || 35001 -> 48626 || 35002 -> 48882 || next port I save is 49138
Both phones then send to each IP and port that should be the next opened and nothing ever happens. They send and receive on those ports over and over ever 2 seconds.
Edited by dpadam450, 07 July 2012 - 05:01 PM.