コード例 #1
0
        public static void ThreadProc()
        {
            while(serverstate != ServerThreadStates.EXIT )
            {
                switch(serverstate){

                    case ServerThreadStates.CONNECTED:
                        Console.WriteLine("Recieving data packet....");
                        try
                        {
                            server.RecievePacket();
                        }
                        catch (Exception e){
                            Console.WriteLine(e.Message);
                            if(!manualstop)
                            {
                                Console.WriteLine("Restarting Server....");
                                serverstate = ServerThreadStates.RESTART;
                            }
                            else
                                manualstop=false;
                        }
                        break;

                    case ServerThreadStates.START:
                        InitializeProcessor();
                        Console.WriteLine("Processor Name : " + server.processorname);
                        Console.WriteLine("Listening on port : " + server.localprt.ToString());
                        if(server.Start())
                        {
                            serverstate = ServerThreadStates.CONNECTED;
                            Console.WriteLine("Connected to : " + ((IPEndPoint) server.listenersocket.RemoteEndPoint).Address.ToString());
                        }
                        else
                            if(!manualstop)
                            {
                                Console.WriteLine("Restarting Server....");
                                serverstate = ServerThreadStates.RESTART;
                            }else
                                manualstop=false;
                        break;

                    case ServerThreadStates.STOP:
                        if(!Object.ReferenceEquals(server,null))
                        {
                            server.Stop();
                            server=null;
                            Console.WriteLine("Server has been stopped.");
                        }
                        Thread.CurrentThread.Suspend();
                        break;

                    case ServerThreadStates.RESTART:
                        if(!Object.ReferenceEquals(server,null)){
                            server.Stop();
                            server=null;
                        }
                        serverstate = ServerThreadStates.START;
                        break;
                }
            }
            server = null;
        }
コード例 #2
0
        static void Main(string[] args)
        {
            manualstop   = false;
            serverstate  = ServerThreadStates.STOP;
            serverthread = new Thread(new ThreadStart(ThreadProc));
            serverthread.Start();
            int v;

            do
            {
                Console.WriteLine("1 - Start Processor");
                Console.WriteLine("2 - Stop Processor");
                Console.WriteLine("3 - Restart Processor");
                Console.WriteLine("4 - Exit");

                try
                {
                    v = int.Parse(Console.ReadLine());
                }
                catch (Exception e) {
                    v = 0;
                }

                switch (v)
                {
                case 1:
                    if (serverstate == ServerThreadStates.STOP)
                    {
                        Console.WriteLine("Starting Server.....");
                        serverstate = ServerThreadStates.START;
                        serverthread.Resume();
                    }
                    else
                    {
                        Console.WriteLine("Server is already started.");
                    }
                    break;

                case 2:
                    if (serverstate != ServerThreadStates.STOP)
                    {
                        Console.WriteLine("Stopping Server.....");
                        serverstate = ServerThreadStates.STOP;
                        manualstop  = true;
                        server.Stop();
                    }
                    else
                    {
                        Console.WriteLine("Server is not running.");
                    }
                    break;

                case 3:
                    if (serverstate != ServerThreadStates.STOP)
                    {
                        Console.WriteLine("Restarting Server....");
                        serverstate = ServerThreadStates.RESTART;
                        manualstop  = true;
                        server.Stop();
                    }
                    else
                    {
                        Console.WriteLine("Server is not running.");
                    }
                    break;

                case 4:
                    if (serverstate != ServerThreadStates.STOP)
                    {
                        Console.WriteLine("Stopping Server.....");
                        serverstate = ServerThreadStates.EXIT;
                        manualstop  = true;
                        server.Stop();
                    }
                    else
                    {
                        serverstate = ServerThreadStates.EXIT;
                        serverthread.Resume();
                    }
                    break;

                default:
                    Console.WriteLine("Bad Command");
                    break;
                }
                Thread.Sleep(1000);
            }while(v != 4);

            serverthread = null;
        }
コード例 #3
0
        static void Main(string[] args)
        {
            manualstop = false;
            serverstate = ServerThreadStates.STOP;
            serverthread =  new Thread(new ThreadStart(ThreadProc));
            serverthread.Start();
            int v;
            do
            {
                Console.WriteLine("1 - Start Processor");
                Console.WriteLine("2 - Stop Processor");
                Console.WriteLine("3 - Restart Processor");
                Console.WriteLine("4 - Exit");

                try
                {
                    v = int.Parse(Console.ReadLine());
                }
                catch(Exception e){
                    v=0;
                }

                switch(v){
                    case 1:
                        if(serverstate==ServerThreadStates.STOP){
                            Console.WriteLine("Starting Server.....");
                            serverstate = ServerThreadStates.START;
                            serverthread.Resume();
                        }else
                            Console.WriteLine("Server is already started.");
                        break;

                    case 2:
                        if(serverstate!=ServerThreadStates.STOP){
                            Console.WriteLine("Stopping Server.....");
                            serverstate = ServerThreadStates.STOP;
                            manualstop = true;
                            server.Stop();
                        }else
                            Console.WriteLine("Server is not running.");
                        break;

                    case 3:
                        if(serverstate !=ServerThreadStates.STOP){
                            Console.WriteLine("Restarting Server....");
                            serverstate = ServerThreadStates.RESTART;
                            manualstop = true;
                            server.Stop();
                        }else
                            Console.WriteLine("Server is not running.");
                        break;

                    case 4:
                        if(serverstate !=ServerThreadStates.STOP)
                        {
                            Console.WriteLine("Stopping Server.....");
                            serverstate = ServerThreadStates.EXIT;
                            manualstop = true;
                            server.Stop();
                        }
                        else
                        {
                            serverstate = ServerThreadStates.EXIT;
                            serverthread.Resume();
                        }
                        break;

                    default:
                        Console.WriteLine("Bad Command");
                        break;
                }
                Thread.Sleep(1000);
            }while(v!=4);

            serverthread = null;
        }
コード例 #4
0
        public static void ThreadProc()
        {
            while (serverstate != ServerThreadStates.EXIT)
            {
                switch (serverstate)
                {
                case ServerThreadStates.CONNECTED:
                    Console.WriteLine("Recieving data packet....");
                    try
                    {
                        server.RecievePacket();
                    }
                    catch (Exception e) {
                        Console.WriteLine(e.Message);
                        if (!manualstop)
                        {
                            Console.WriteLine("Restarting Server....");
                            serverstate = ServerThreadStates.RESTART;
                        }
                        else
                        {
                            manualstop = false;
                        }
                    }
                    break;

                case ServerThreadStates.START:
                    InitializeProcessor();
                    Console.WriteLine("Processor Name : " + server.processorname);
                    Console.WriteLine("Listening on port : " + server.localprt.ToString());
                    if (server.Start())
                    {
                        serverstate = ServerThreadStates.CONNECTED;
                        Console.WriteLine("Connected to : " + ((IPEndPoint)server.listenersocket.RemoteEndPoint).Address.ToString());
                    }
                    else
                    if (!manualstop)
                    {
                        Console.WriteLine("Restarting Server....");
                        serverstate = ServerThreadStates.RESTART;
                    }
                    else
                    {
                        manualstop = false;
                    }
                    break;

                case ServerThreadStates.STOP:
                    if (!Object.ReferenceEquals(server, null))
                    {
                        server.Stop();
                        server = null;
                        Console.WriteLine("Server has been stopped.");
                    }
                    Thread.CurrentThread.Suspend();
                    break;

                case ServerThreadStates.RESTART:
                    if (!Object.ReferenceEquals(server, null))
                    {
                        server.Stop();
                        server = null;
                    }
                    serverstate = ServerThreadStates.START;
                    break;
                }
            }
            server = null;
        }