예제 #1
0
        void StartUdpServer()
        {
            //create a new server
            Console.WriteLine("Listening to clients");

            // Thread to listen for incomming messages
            udpListener = new UdpListener(new IPEndPoint(IPAddress.Any, 9601));
            Thread listenerThread = new Thread(() => udpListener.Listen());

            listenerThread.Start();


            // Thread to process the incomming messages (Since network is faster than actual execution of code)
            HandleData handleData       = new HandleData(gameControlCenter);
            Thread     handleDataThread = new Thread(() => handleData.subscribeToEvent(udpListener));

            handleDataThread.Start();

            // Thread to broadcast gamestate to all players in a fixed interval
            Broadcaster broadCaster       = new Broadcaster(gameControlCenter);
            Thread      broadcasterThread = new Thread(() => broadCaster.BroadcastGameState());

            broadcasterThread.Start();
        }