public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; m_Core.ready_udp_handler = (bool bTrust) => { /** bTrust값이 false인 경우 모바일모드이거나 udp수신이 안정적이지 않은 경우입니다 어쨋든 ready상태이므로 조금 불안정하긴 하지만 udp패킷송수신이 가능하며 서버에서 지속적으로 상태를 체크하여 자동 관리함에 따라 일시적으로 손실되어도 신경쓸필요 없습니다(자동 홀펀칭) */ Console.WriteLine("ReadyUdp trust {0}", bTrust); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; m_Core.ready_udp_handler = (bool bTrust) => { /** * bTrust값이 false인 경우 모바일모드이거나 udp수신이 안정적이지 않은 경우입니다 * 어쨋든 ready상태이므로 조금 불안정하긴 하지만 udp패킷송수신이 가능하며 서버에서 지속적으로 상태를 * 체크하여 자동 관리함에 따라 일시적으로 손실되어도 신경쓸필요 없습니다(자동 홀펀칭) */ Console.WriteLine("ReadyUdp trust {0}", bTrust); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; // 그룹 이벤트 m_Core.group_join_handler = (bool bJoin, ZNet.RemoteID groupID, ZNet.RemoteID memberID, int memberCount) => { if (bJoin) Console.WriteLine(string.Format("Group Join : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); else Console.WriteLine(string.Format("Group Out : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); }; // 메세지 처리 stub.Chat = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string msg) => { Console.WriteLine(string.Format("recv : {0}", msg)); return true; }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; m_Core.recovery_start_handler = () => { Console.WriteLine("Recovery Connection Start..."); }; m_Core.recovery_end_handler = () => { Console.WriteLine("Recovery Connection Complete."); }; m_Core.server_connect_result_handler = (bool isConnectSuccess) => { if (isConnectSuccess) { Console.WriteLine("Connected!"); Program.DisplayHelpCommand(); } else { Console.WriteLine("Connect Fail!"); } }; m_Core.server_limit_handler = () => { Console.WriteLine("Limit connection from server"); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); // 반자동으로 서버이동 처리하기 : 선택된 서버의 주소 정보를 받아 직접적으로 서버 주소를 넣어 이동하기 stub.reponse_move_to_server = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, bool result, ZNet.NetAddress addr) => { if (result) { Console.WriteLine("Manual move server to : {0}:{1}", addr.m_ip, addr.m_port); /** * address를 넣어 직접적인 서버이동 요청 (MoveToServer로 서버이동시 처리되는 과정) * - 서버 내부적으로 암호화된 128비트 인증키를 발급하여 목표 서버로 이동시점에 인증키 검증하여 완료처리 * - 모든 과정은 자동으로 진행되며 예외상황으로 서버이동이 실패하는 경우 move_fail_handler 이벤트가 발생합니다 */ m_Core.MoveToServer(addr); } else { Console.WriteLine("Manual move server fail"); } return(true); }; // MoveToServer에서 서버타입을 넣어 전자동으로 서버이동을 시도한경우의 실패 이벤트 m_Core.move_fail_handler = () => { Console.WriteLine("Auto move server fail!"); }; m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("서버입장성공 [{0}:{1}] - 서버이동으로 입장한경우[{2}]", info.addr.m_ip, info.addr.m_port, info.moved); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("서버퇴장성공 [{0}:{1}] - 서버이동으로 입장한경우[{2}]", info.addr.m_ip, info.addr.m_port, info.moved); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; m_Core.recovery_start_handler = () => { Console.WriteLine("Recovery Connection Start..."); }; m_Core.recovery_end_handler = () => { Console.WriteLine("Recovery Connection Complete."); }; m_Core.server_connect_result_handler = (bool isConnectSuccess) => { if (isConnectSuccess) { Console.WriteLine("Connected!"); Program.DisplayHelpCommand(); } else { Console.WriteLine("Connect Fail!"); } }; m_Core.server_limit_handler = () => { Console.WriteLine("Limit connection from server"); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); // 반자동으로 서버이동 처리하기 : 선택된 서버의 주소 정보를 받아 직접적으로 서버 주소를 넣어 이동하기 stub.reponse_move_to_server = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, bool result, ZNet.NetAddress addr) => { if (result) { Console.WriteLine("Manual move server to : {0}:{1}", addr.m_ip, addr.m_port); /** address를 넣어 직접적인 서버이동 요청 (MoveToServer로 서버이동시 처리되는 과정) - 서버 내부적으로 암호화된 128비트 인증키를 발급하여 목표 서버로 이동시점에 인증키 검증하여 완료처리 - 모든 과정은 자동으로 진행되며 예외상황으로 서버이동이 실패하는 경우 move_fail_handler 이벤트가 발생합니다 */ m_Core.MoveToServer(addr); } else { Console.WriteLine("Manual move server fail"); } return true; }; // MoveToServer에서 서버타입을 넣어 전자동으로 서버이동을 시도한경우의 실패 이벤트 m_Core.move_fail_handler = () => { Console.WriteLine("Auto move server fail!"); }; m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("서버입장성공 [{0}:{1}] - 서버이동으로 입장한경우[{2}]", info.addr.m_ip, info.addr.m_port, info.moved); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("서버퇴장성공 [{0}:{1}] - 서버이동으로 입장한경우[{2}]", info.addr.m_ip, info.addr.m_port, info.moved); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; // 그룹 이벤트 m_Core.group_join_handler = (bool bJoin, ZNet.RemoteID groupID, ZNet.RemoteID memberID, int memberCount) => { if (bJoin) { Console.WriteLine(string.Format("Group Join : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); } else { Console.WriteLine(string.Format("Group Out : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); } }; // 메세지 처리 stub.Chat = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string msg) => { Console.WriteLine(string.Format("recv : {0}", msg)); return(true); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); stub.Chat = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string msg) => { Console.WriteLine(string.Format("recv : {0}", msg)); return(true); }; stub.notify_lobby_list = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, Dictionary <ZNet.RemoteID, ZNet.MasterInfo> lobby_list) => { lobbys = lobby_list; foreach (var obj in lobby_list) { Console.WriteLine(string.Format("lobby : {0}", obj.Value.m_Description)); } return(true); }; // 서버이동 시도의 실패 이벤트 처리 m_Core.move_fail_handler = () => { Console.WriteLine("Auto move server fail!"); }; 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 = CasualCommon.Server.Login; Console.WriteLine("서버입장성공 {0}", server_now); } Console.WriteLine("({0}) {1}", this.server_now, HelpCommand(this.server_now)); }; 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("서버퇴장성공"); } }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); stub.Chat = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, string msg) => { Console.WriteLine(string.Format("recv : {0}", msg)); return true; }; stub.notify_lobby_list = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, Dictionary<ZNet.RemoteID, ZNet.MasterInfo> lobby_list) => { lobbys = lobby_list; foreach (var obj in lobby_list) { Console.WriteLine(string.Format("lobby : {0}", obj.Value.m_Description)); } return true; }; // 서버이동 시도의 실패 이벤트 처리 m_Core.move_fail_handler = () => { Console.WriteLine("Auto move server fail!"); }; 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 = CasualCommon.Server.Login; Console.WriteLine("서버입장성공 {0}", server_now); } Console.WriteLine("({0}) {1}", this.server_now, HelpCommand(this.server_now)); }; 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("서버퇴장성공"); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; m_Core.recovery_start_handler = () => { Console.WriteLine("Recovery Connection Start..."); }; m_Core.recovery_end_handler = () => { Console.WriteLine("Recovery Connection Complete."); }; m_Core.server_connect_result_handler = (bool isConnectSuccess) => { if (isConnectSuccess) { Console.WriteLine("Connected!"); Program.DisplayHelpCommand(); } else { Console.WriteLine("Connect Fail!"); } }; m_Core.server_limit_handler = () => { Console.WriteLine("Limit connection from server"); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; m_Core.group_join_handler = (bool bJoin, ZNet.RemoteID groupID, ZNet.RemoteID memberID, int memberCount) => { if (bJoin) Console.WriteLine(string.Format("Group Join : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); else Console.WriteLine(string.Format("Group Out : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); }; }
public NetManager() { core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); core.Attach(proxy, stub); // 서버로의 접속시도 결과 처리 core.server_connect_result_handler = (bool isConnectSuccess) => { if (isConnectSuccess) { OutMsg("connect ok"); } else { OutMsg("connect fail"); if (JoinFailedHandler != null) { JoinFailedHandler(); } } }; // 서버에 접속성공 이후 실제 입장성공 시점 core.server_join_handler = (ZNet.ConnectionInfo info) => { OutMsg("join server = {0}:{1}", info.addr.addr, info.addr.port); proxy.cs_login(ZNet.RemoteID.Remote_Server, ZNet.CPackOption.Basic, "홍길동"); if (JoinHandler != null) { JoinHandler(); } }; // 서버에서 퇴장됨 core.server_leave_handler = (ZNet.ConnectionInfo info) => { OutMsg("leave server {0}:{1}", info.addr.addr, info.addr.port); if (LeaveHandler != null) { LeaveHandler(); } }; core.message_handler = (ZNet.ResultInfo result) => { if (InternalHandler != null) { InternalHandler(result.msg); } }; // 로그인 성공 패킷 처리 stub.sc_login_ok = (ZNet.RemoteID remote, ZNet.CPackOption pkOption, NetCommon.CUser user_data) => { OutMsg("server login complete. my username = {0}, userID = {1}", user_data.username, user_data.userID); return(true); }; }
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); }; }
public CClient() { m_Core = new ZNet.CoreClientNet(); proxy = new Rmi.Proxy(); stub = new Rmi.Stub(); m_Core.Attach(proxy, stub); m_Core.server_join_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("JoinOK"); }; m_Core.server_leave_handler = (ZNet.ConnectionInfo info) => { Console.WriteLine("Leave"); }; m_Core.recovery_start_handler = () => { Console.WriteLine("Recovery Connection Start..."); }; m_Core.recovery_end_handler = () => { Console.WriteLine("Recovery Connection Complete."); }; m_Core.server_connect_result_handler = (bool isConnectSuccess) => { if (isConnectSuccess) { Console.WriteLine("Connected!"); Program.DisplayHelpCommand(); } else { Console.WriteLine("Connect Fail!"); } }; m_Core.server_limit_handler = () => { Console.WriteLine("Limit connection from server"); }; m_Core.message_handler = (ZNet.ResultInfo result) => { string str_msg = "Msg : "; str_msg += result.msg; Console.WriteLine(str_msg); }; m_Core.group_join_handler = (bool bJoin, ZNet.RemoteID groupID, ZNet.RemoteID memberID, int memberCount) => { if (bJoin) { Console.WriteLine(string.Format("Group Join : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); } else { Console.WriteLine(string.Format("Group Out : groupID {0}, memberID {1}, membercount {2}", groupID, memberID, memberCount)); } }; }