Beispiel #1
0
        static void Main(string[] args)
        {
            CClient Client = new CClient();

            Client.m_Core.Connect("127.0.0.1", 20000, 0);
            Console.Write("> ");

            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":
                        Console.WriteLine("/Cmd:  h(Help) q(Quit) exit(ProgramExit)");
                        break;

                    default:
                        // 보낼 패킷 데이터 준비
                        RemoteClass.CUserClass    _testClass = new RemoteClass.CUserClass();
                        Dictionary <Int32, Int32> _testDic   = new Dictionary <Int32, Int32>();
                        _testDic.Add(1212345, 1230);

                        // 패킷 보내고
                        Client.proxy.request_Echo(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, _testClass, _testDic, ret.Result);

                        // 패킷 받을때 처리
                        Client.stub.reponse_Echo = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary <Int32, Int32> dic_test, 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);
        }
Beispiel #2
0
 public bool reponse_Echo(ZNet.RemoteID[] remotes, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary <Int32, Int32> dic_test, string msg)
 {
     foreach (var obj in remotes)
     {
         reponse_Echo(obj, pkOption, testClass, dic_test, msg);
     }
     return(true);
 }
Beispiel #3
0
        static void Main(string[] args)
        {
            CClient Client = new CClient();

            Client.m_Core.Connect("127.0.0.1", 20000, 0);
            Console.Write("> ");

            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":
                            Console.WriteLine("/Cmd:  h(Help) q(Quit) exit(ProgramExit)");
                            break;

                        default:
                            // 보낼 패킷 데이터 준비
                            RemoteClass.CUserClass _testClass = new RemoteClass.CUserClass();
                            Dictionary<Int32, Int32> _testDic = new Dictionary<Int32, Int32>();
                            _testDic.Add(1212345, 1230);

                            // 패킷 보내고
                            Client.proxy.request_Echo(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, _testClass, _testDic, ret.Result);

                            // 패킷 받을때 처리
                            Client.stub.reponse_Echo = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary<Int32, Int32> dic_test, 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);
        }
Beispiel #4
0
        public bool reponse_Echo(ZNet.RemoteID remote, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary <Int32, Int32> dic_test, string msg)
        {
            ZNet.CMessage   Msg   = new ZNet.CMessage();
            ZNet.PacketType msgID = (ZNet.PacketType)Common.reponse_Echo;

            Msg.WriteStart(msgID, pkOption, 0, true);

            RemoteClass.Marshaler.Write(Msg, testClass);
            RemoteClass.Marshaler.Write(Msg, dic_test);
            RemoteClass.Marshaler.Write(Msg, msg);

            return(PacketSend(remote, pkOption, Msg));
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            CClient Client = new CClient();

            Client.m_Core.Connect(
                "127.0.0.1",
                20000,
                0,     // protocol version
                55,    // udp recve port : if 0 = disable
                false, // mobile optimize option
                true   //false       // enable auto connection recovery mode
                );

            Console.Write("> ");

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

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

                    case "/c":
                        Console.WriteLine("reconnect try...");
                        if (Client.m_Core.ReConnect() == false)
                        {
                            Console.WriteLine("reconnect fail. check connection not disconnect or recovery mode");
                        }
                        break;

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

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

                    case "/f":
                        Client.m_Core.FastRecovery();     // 즉시 연결복구 처리하기
                        break;

                    case "/k":
                        Client.m_Core.ForceLeave();       // 일방적인 서버와의 연결종료
                        break;

                    default:
                        // packet send test
                        RemoteClass.CUserClass    _testClass = new RemoteClass.CUserClass();
                        Dictionary <Int32, Int32> _testDic   = new Dictionary <Int32, Int32>();
                        _testDic.Add(1212345, 1230);

                        Client.proxy.request_message(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, _testClass, _testDic, ret.Result);

                        Client.stub.reponse_message = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary <Int32, Int32> dic_test, 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);
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            CClient Client = new CClient();

            Client.m_Core.Connect(
                "127.0.0.1",
                20000,
                0,          // protocol version
                55,         // udp recve port : if 0 = disable
                false,      // mobile optimize option
                true//false       // enable auto connection recovery mode
                );

            Console.Write("> ");

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

                        case "/c":
                            Console.WriteLine("reconnect try...");
                            if (Client.m_Core.ReConnect() == false)
                            {
                                Console.WriteLine("reconnect fail. check connection not disconnect or recovery mode");
                            }
                            break;

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

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

                        case "/f":
                            Client.m_Core.FastRecovery(); // 즉시 연결복구 처리하기
                            break;

                        case "/k":
                            Client.m_Core.ForceLeave();   // 일방적인 서버와의 연결종료
                            break;

                        default:
                            // packet send test
                            RemoteClass.CUserClass _testClass = new RemoteClass.CUserClass();
                            Dictionary<Int32, Int32> _testDic = new Dictionary<Int32, Int32>();
                            _testDic.Add(1212345, 1230);

                            Client.proxy.request_message(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, _testClass, _testDic, ret.Result);

                            Client.stub.reponse_message = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary<Int32, Int32> dic_test, 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);
        }
Beispiel #7
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
                        RemoteClass.CUserClass    _testClass = new RemoteClass.CUserClass();
                        Dictionary <Int32, Int32> _testDic   = new Dictionary <Int32, Int32>();
                        _testDic.Add(1212345, 1230);

                        Client.proxy.request_message(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Encrypt, _testClass, _testDic, ret.Result);

                        Client.stub.reponse_message = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, RemoteClass.CUserClass testClass, Dictionary <Int32, Int32> dic_test, 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);
        }