Пример #1
0
        private void ConnectInfoResponse(byte[] bytes, IPEndPoint refEp)
        {
            //send ack
            ConnectInfo conv = ConversationFactory.Instance
                               .CreateFromMessage <ConnectInfo>(bytes, refEp, null, null, null);

            conv.Start();
            //connect to server
            ConnectMsg msg = Message.Decode <ConnectMsg>(bytes);

            gameServer = msg.GameServer;
            //open tcp connection
            TCPClient tcp = new TCPClient();

            tcp.SetupConnection();

            int gamePort = tcp.port;

            tcpClients.Add(tcp);
            //send message with info on which port
            ConnectGameServer connectConv = ConversationFactory.Instance
                                            .CreateFromConversationType <ConnectGameServer>
                                                (gameServer, null, null, null);

            connectConv._GameId     = 1;
            connectConv._NumPlayers = 1;
            connectConv._Port       = gamePort;
            connectConv.Start();
        }
Пример #2
0
        public void StartGame(int gameID)//before response
        {
            GameInfo g = null;

            gameList.TryGetValue(gameID, out g);
            if (g != null)
            {
                foreach (Player p in g.playerList)
                {
                    //Send gameserver info to each player
                    IPEndPoint  playerIP = p.GetIP();
                    ConnectInfo conv     =
                        ConversationFactory.Instance
                        .CreateFromConversationType <ConnectInfo>
                            (playerIP, null, null, null);
                    conv._gameServer = GameServer;
                    conv.Start();
                }
            }
            gameList.TryRemove(gameID, out g);
        }