예제 #1
0
        static void Main(string[] args)
        {
            UdoServer Svr = new UdoServer();

            // udp 관련 옵션 설정을 위해 : StartOption의 디폴트 값을 그대로 사용해도 되지만 세부설정을 위해 별도 선언
            ZNet.StartOption op = new ZNet.StartOption();

            op.m_UdpPorts    = new int[2]; // 서버에서 사용할 udp 포트 개수
            op.m_UdpPorts[0] = 20004;      // udp 포트 설정
            op.m_UdpPorts[1] = 20005;      // udp 포트 설정

            ZNet.ResultInfo outResult = new ZNet.ResultInfo();
            if (Svr.m_Core.Start(op, outResult))
            {
                Console.WriteLine("Start Server ok. ver[{0}.{1:0000}]\n", Svr.m_Core.GetCoreVersion() / 10000, Svr.m_Core.GetCoreVersion() % 10000);
                Console.WriteLine("/Cmd:  q(Quit) h(Help) stat(status info)\n");
            }
            else
            {
                Console.WriteLine("Error Start...  : {0} \n", outResult.msg);
                System.Threading.Thread.Sleep(1000 * 4);
                Svr.m_Core.Dispose();
                return;
            }

            var  ret         = ReadLineAsync();
            bool run_program = true;

            while (run_program)
            {
                if (ret.IsCompleted)
                {
                    switch (ret.Result)
                    {
                    case "/h":
                        Console.WriteLine("/Cmd:  q(Quit) h(Help) stat(status info)");
                        break;

                    case "/stat":
                        ZNet.ServerState status;
                        Svr.m_Core.GetCurrentState(out status);
                        Console.WriteLine(string.Format("[NetInfo]  Joined Client = {0}\n", status.m_JoinedClient));
                        break;

                    case "/q":
                        Console.WriteLine("quit Server...");
                        run_program = false;
                        break;
                    }

                    if (run_program)
                    {
                        ret = ReadLineAsync();
                    }
                }

                System.Threading.Thread.Sleep(10);
            }

            Console.WriteLine("Start Closing...  ");
            Svr.m_Core.Dispose();
            Console.WriteLine("Close complete.");

            System.Threading.Thread.Sleep(1000 * 2);
        }
예제 #2
0
파일: Program.cs 프로젝트: KimKJ/Zero
        static void Main(string[] args)
        {
            UdoServer Svr = new UdoServer();

            // udp 관련 옵션 설정을 위해 : StartOption의 디폴트 값을 그대로 사용해도 되지만 세부설정을 위해 별도 선언
            ZNet.StartOption op = new ZNet.StartOption();

            op.m_UdpPorts = new int[2]; // 서버에서 사용할 udp 포트 개수
            op.m_UdpPorts[0] = 20004;   // udp 포트 설정
            op.m_UdpPorts[1] = 20005;   // udp 포트 설정

            ZNet.ResultInfo outResult = new ZNet.ResultInfo();
            if (Svr.m_Core.Start(op, outResult))
            {
                Console.WriteLine("Start Server ok. ver[{0}.{1:0000}]\n", Svr.m_Core.GetCoreVersion() / 10000, Svr.m_Core.GetCoreVersion() % 10000);
                Console.WriteLine("/Cmd:  q(Quit) h(Help) stat(status info)\n");
            }
            else
            {
                Console.WriteLine("Error Start...  : {0} \n", outResult.msg);
                System.Threading.Thread.Sleep(1000 * 4);
                Svr.m_Core.Dispose();
                return;
            }

            var ret = ReadLineAsync();
            bool run_program = true;
            while (run_program)
            {
                if (ret.IsCompleted)
                {
                    switch (ret.Result)
                    {
                        case "/h":
                            Console.WriteLine("/Cmd:  q(Quit) h(Help) stat(status info)");
                            break;

                        case "/stat":
                            ZNet.ServerState status;
                            Svr.m_Core.GetCurrentState(out status);
                            Console.WriteLine(string.Format("[NetInfo]  Joined Client = {0}\n", status.m_JoinedClient));
                            break;

                        case "/q":
                            Console.WriteLine("quit Server...");
                            run_program = false;
                            break;
                    }

                    if (run_program)
                        ret = ReadLineAsync();
                }

                System.Threading.Thread.Sleep(10);
            }

            Console.WriteLine("Start Closing...  ");
            Svr.m_Core.Dispose();
            Console.WriteLine("Close complete.");

            System.Threading.Thread.Sleep(1000 * 2);
        }