Beispiel #1
0
        public CClient()
        {
            m_Core = new ZNet.CoreClientNet();

            proxy = new Rmi.Proxy();
            stub  = new Rmi.Stub();

            m_Core.Attach(proxy, stub);


            // 서버가 보낸 로그인인증 결과패킷을 처리합니다
            stub.reponse_Login = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, bool bResult) =>
            {
                Console.WriteLine("로그인 인증 결과" + bResult);
                return(true);
            };

            // 서버로부터 받은 메세지
            stub.Chat = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string txt) =>
            {
                Console.WriteLine(txt);
                return(true);
            };



            // 서버이동 시도에 대한 실패 이벤트
            m_Core.move_fail_handler = () =>
            {
                Console.WriteLine("서버이동 처리가 실패하였습니다.");
            };

            // 서버로의 입장이 성공한 이벤트 처리
            m_Core.server_join_handler = (ZNet.ConnectionInfo info) =>
            {
                if (info.moved)
                {
                    // 서버이동이 성공한 시점 : 위치를 목표했던 서버로 설정
                    server_now = server_tag;
                    Console.WriteLine("서버이동성공 [{0}:{1}] {2}", info.addr.m_ip, info.addr.m_port, server_now);
                }
                else
                {
                    // 최초 입장의 성공시점 : 위치를 로그인 서버로 설정
                    server_now = UnityCommon.Server.Login;
                    Console.WriteLine("서버입장성공 {0}", server_now);

                    // 최초 로그인 DB인증 시도 요청
                    proxy.request_Login(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Basic, "철수", "abcd");
                }
            };

            // 서버로의 퇴장이 처리된 이벤트 처리
            m_Core.server_leave_handler = (ZNet.ConnectionInfo info) =>
            {
                if (info.moved)
                {
                    Console.WriteLine("서버이동을 위해 퇴장, 이동할서버 [{0}:{1}]", info.addr.m_ip, info.addr.m_port);
                }
                else
                {
                    Console.WriteLine("서버퇴장성공");
                }


                // 어떤 서버에서 퇴장하든 재접속시 최초접속과 구분하기 위하여 로그인 서버로 세팅해둡니다
                server_now = UnityCommon.Server.Login;
            };


            // 예외 상황에 대한 정보 출력 이벤트
            m_Core.message_handler = (ZNet.ResultInfo result) =>
            {
                string str_msg = "Msg : ";
                str_msg += result.msg;
                Console.WriteLine(str_msg);
            };
        }