Thanks Bro ^_^Y
The first apps which is John who selected the < Create Game > and created a 3 players game is Hosting the game or the Server, and all other two which is Paul and Marry only joining the game who clicked < Join Game > there's no mother host since this is just a desktop app, any app can create or join a game. If this app is intended to be played over the internet I will create a mother host who can hosted created games that other players can join across the globe.
What I did is once you created a game, automatically other client will detect that you created a game across the local sub-net without manually or programatically hard coding IP address, but of course specifying hard coded IP on client enable the server to accept a clients across the globe if your firewall allows it ^ _^ y
I believed I write clean codes very well commented LEL .... for others to understand the game logic, If I have time I will create a blog out of it as I think it is required.