/// <summary> /// 문자열로된 숫자를 명령어 타입으로 바꿔줍니다. /// 입력된 문자열이 올바르지 않다면 기본상태를 줍니다. /// </summary> /// <param name="sData"></param> /// <returns></returns> public Command StrIntToType(string sData) { //넘어온 명령 claCommand.Command typeCommand = claCommand.Command.None; if (true == m_insNumber.IsNumeric(sData)) { //입력된 명령이 숫자라면 명령 타입으로 변환한다. //입력된 명령이 숫자가 아니면 명령 없음 처리(기본값)를 한다. typeCommand = (claCommand.Command)Convert.ToInt32(sData); } return(typeCommand); }
/// <summary> /// 넘어온 데이터를 분석 한다. /// </summary> /// <param name="sMsg"></param> private void MsgAnalysis(string sMsg) { //구분자로 명령을 구분 한다. string[] sData = sMsg.Split(claGlobal.g_Division); //데이터 개수 확인 if ((1 <= sData.Length)) { //0이면 빈메시지이기 때문에 별도의 처리는 없다. //넘어온 명령 claCommand.Command typeCommand = m_insCommand.StrIntToType(sData[0]); switch (typeCommand) { case claCommand.Command.None: //없다 break; case claCommand.Command.Msg: //메시지인 경우 Command_Msg(sData[1]); break; case claCommand.Command.ID_Check_Ok: //아이디 성공 SendMeg_IDCheck_Ok(); break; case claCommand.Command.ID_Check_Fail: //아이디 실패 SendMeg_IDCheck_Fail(); break; case claCommand.Command.User_Connect: //다른 유저가 접속 했다. SendMeg_User_Connect(sData[1]); break; case claCommand.Command.User_Disonnect: //다른 유저가 접속을 끊었다. SendMeg_User_Disconnect(sData[1]); break; case claCommand.Command.User_List: //유저 리스트 갱신 SendMeg_User_List(sData[1]); break; } } }
/// <summary> /// 넘어온 데이터를 분석 한다. /// </summary> /// <param name="sMsg"></param> private void MsgAnalysis(string sMsg) { //구분자로 명령을 구분 한다. string[] sData = sMsg.Split(claGlobal.g_Division); //데이터 개수 확인 if ((1 <= sData.Length)) { //0이면 빈메시지이기 때문에 별도의 처리는 없다. //넘어온 명령 claCommand.Command typeCommand = m_insCommand.StrIntToType(sData[0]); switch (typeCommand) { case claCommand.Command.None: //없다 break; case claCommand.Command.Msg: //메시지인 경우 SendMeg_Main(sData[1], typeCommand); break; case claCommand.Command.ID_Check: //아이디 체크 SendMeg_Main(sData[1], typeCommand); break; case claCommand.Command.User_List_Get: //유저리스트 갱신 요청 SendMeg_Main("", typeCommand); break; case claCommand.Command.Login: //로그인 완료 OnConnected(this); break; } } }
/// <summary> /// 서버로 메시지를 보냅니다. /// </summary> /// <param name="sMag"></param> private void SendMeg_Main(string sMag, claCommand.Command typeCommand) { MessageEventArgs e = new MessageEventArgs(sMag, typeCommand); OnMessaged(this, e); }
/// <summary> /// 메시지 설정 /// </summary> /// <param name="strMsg"></param> /// <param name="typeCommand"></param> public MessageEventArgs(string strMsg, claCommand.Command typeCommand) { this.m_strMsg = strMsg; this.m_typeCommand = typeCommand; }