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(); }
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); }