Exemplo n.º 1
0
        static void Main(string[] args)
        {
            CClient Client = new CClient();

            Client.m_Core.Connect(ServerP2P_Common.Join.ipaddr, ServerP2P_Common.Join.portnum, ServerP2P_Common.Join.protocol_ver);

            DisplayHelpCommand();

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

            while (run_program)
            {
                if (ret.IsCompleted)
                {
                    switch (ret.Result)
                    {
                    case "/q":
                        Client.m_Core.Leave();
                        break;

                    case "/exit":
                        run_program = false;
                        break;

                    case "/h":
                        DisplayHelpCommand();
                        break;


                    // 자동으로 서버이동 처리하기 : 요청 즉시 자동으로 해당타입의 서버로 이동(자동 로드벨런싱 처리)
                    case "/maina":
                        Client.m_Core.MoveToServer((int)ServerP2P_Common.Server.Main);
                        break;

                    // 자동으로 서버이동 처리하기 : 요청 즉시 자동으로 해당타입의 서버로 이동(자동 로드벨런싱 처리)
                    case "/logina":
                        Client.m_Core.MoveToServer((int)ServerP2P_Common.Server.Login);
                        break;


                    // 반자동으로 서버이동 처리하기 : 서버이동 과정에 부가적인 처리할 내용이 있을경우
                    case "/main":
                        Client.proxy.request_move_to_server(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Basic, (int)ServerP2P_Common.Server.Main);
                        break;

                    // 반자동으로 서버이동 처리하기 : 서버이동 과정에 부가적인 처리할 내용이 있을경우
                    case "/login":
                        Client.proxy.request_move_to_server(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Basic, (int)ServerP2P_Common.Server.Login);
                        break;

                    default:
                        // packet send test
                        Client.proxy.request_message(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, ret.Result);

                        Client.stub.reponse_message = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string msg) =>
                        {
                            Console.WriteLine(string.Format("recv : {0}", msg));
                            return(true);
                        };
                        break;
                    }

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

                Client.m_Core.NetLoop();
                System.Threading.Thread.Sleep(1);
            }

            Client.m_Core.Destroy();
            System.Threading.Thread.Sleep(1000 * 2);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            CClient Client = new CClient();

            Client.m_Core.Connect(ServerP2P_Common.Join.ipaddr, ServerP2P_Common.Join.portnum, ServerP2P_Common.Join.protocol_ver);

            DisplayHelpCommand();

            var ret = ReadLineAsync();
            bool run_program = true;
            while (run_program)
            {
                if (ret.IsCompleted)
                {
                    switch (ret.Result)
                    {
                        case "/q":
                            Client.m_Core.Leave();
                            break;

                        case "/exit":
                            run_program = false;
                            break;

                        case "/h":
                            DisplayHelpCommand();
                            break;


                        // 자동으로 서버이동 처리하기 : 요청 즉시 자동으로 해당타입의 서버로 이동(자동 로드벨런싱 처리)
                        case "/maina":
                            Client.m_Core.MoveToServer((int)ServerP2P_Common.Server.Main);
                            break;

                        // 자동으로 서버이동 처리하기 : 요청 즉시 자동으로 해당타입의 서버로 이동(자동 로드벨런싱 처리)
                        case "/logina":
                            Client.m_Core.MoveToServer((int)ServerP2P_Common.Server.Login);
                            break;


                        // 반자동으로 서버이동 처리하기 : 서버이동 과정에 부가적인 처리할 내용이 있을경우
                        case "/main":
                            Client.proxy.request_move_to_server(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Basic, (int)ServerP2P_Common.Server.Main);
                            break;

                        // 반자동으로 서버이동 처리하기 : 서버이동 과정에 부가적인 처리할 내용이 있을경우
                        case "/login":
                            Client.proxy.request_move_to_server(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Basic, (int)ServerP2P_Common.Server.Login);
                            break;

                        default:
                            // packet send test
                            Client.proxy.request_message(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, ret.Result);

                            Client.stub.reponse_message = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string msg) =>
                            {
                                Console.WriteLine(string.Format("recv : {0}", msg));
                                return true;
                            };
                            break;
                    }

                    if (run_program)
                        ret = ReadLineAsync();
                }

                Client.m_Core.NetLoop();
                System.Threading.Thread.Sleep(1);
            }

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