Why room can't be joinable made by A, but?

I make standalone of ‘zero guide’'s example3 (lobby), and give it to another user, B (live in different region and of course another computer, IP).

I run myself (A) the example3 and start server, waiting for join.

Then B also run the application, but said to A that B can see the room made by A in the lobby menu, but B can’t join. When click [connect] error occur.

Strange thing is, if B start server, then A also can see the room and even can join that room made by B.

Why?

A and B both behind router.

probably port forwarding or firewall problem.

Thanks appels.

Hm…so for resolve that problem, NAT punchthrough exist I think. But I don’t know how to make NAT punch work in this case.

And user A using Norton360 and window7, but user B uses window XP. → I tried stop A’s firewall function of Norton and window7, but still B can’t join.

I have never messed around with the nat facilitator but i guess you need to test your connection before making a connection and based on that result change the connect string. But i could be wrong about it

Is this because of I using [old, free] version [zero guide]'s example3 script?

So I found this thread, http://forum.unity3d.com/threads/74120-Cannot-Achieve-NAT-punch-through.?highlight=nat+punchthrough

maybe 3.x unity requires GUID connect for NAT punch through. So maybe this networking mechanic’s structure is, if someone start server, register that server to master server, and then other client do fetch list and also it’s GUID info, and then connect to that GUID ?

Network.Connect takes a couple different parameters. If you use the HostData object provided by the master server, it’ll automatically use the GUID, and attempt to do punchthrough if specified to be used upon starting a server.

If you look at the switch statement in the code on this page, you can see that nat punchthrough doesn’t work all the time either, as things like routers can change the ability to do it correctly

Yes I got result of case ConnectionTesterStatus.LimitedNATPunchthroughSymmetric:‘’
Why my laptop get that result, I don’t know.
I knew NAT punchthrough can resolve all sort of these problem.

  1. How to get through this?

  2. And why people says 3rd part’s middleware can perfectly resolve NAT punchthrough?

For middlewares like SFS and Photon it’s obvious because the server is the actual hoster, it doesn’t route your connection to another server.
All clients connect to the same server and the traffic is sent over that connection.
The masterserver is sort of a relay server that makes sure you can connect to a remote server.
Middlewares don’t have to provide Nat, ports or other stuff, it’s handled on the client side on the outgoing connection.

:smile: I solved this problem by GUID I mentioned above.:slight_smile:

Now no problem with make room and joining between A and B remote users behind each router and differen IP and different internet company.

Using unity built-in networking, unity default master-server.