Ejemplo n.º 1
0
        public void OnRegisterClusterRequestSuccesful(RequestSuccesfulEventArgs args)
        {
            LoginConnector.OnClusterRequestSuccesful -= OnRegisterClusterRequestSuccesful;
            if (args.Accepted)
            {
                ClusterId = args.Id;

                LoginConnector.OnNewChannelRequestSuccesful += new LoginConnector.RequestSuccesfulHandler(OnRegisterNewChannelSuccesful);

                this.m_PlayerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                this.m_PlayerSocket.Bind(new IPEndPoint(IPAddress.Any, 28000));
                this.m_PlayerSocket.Listen(100);

                ClientManager  = new ClientManager();
                ChannelManager = new ChannelManager();
                WorldConnector = new WorldConnector(((int)Config.GetSetting("ClusterPort")).ToString());
                WorldConnector.StartListening();

                Thread acceptPlayerThread = new Thread(() => ClientManager.AcceptPlayers(this.m_PlayerSocket));
                acceptPlayerThread.Start();

                Thread processPlayerThread = new Thread(() => ClientManager.ProcessPlayers());
                processPlayerThread.Start();

                Console.WriteLine("Cluster request succesful!");
            }
            else
            {
                Console.WriteLine("Cluster request wasn't succesful!");
            }
        }