示例#1
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            PacketBuffer.Init((8096 * 10), 12, 512);

            IsNetworkThreadRunning = true;
            NetworkReadThread      = new System.Threading.Thread(this.NetworkReadProcess);
            NetworkReadThread.Start();
            NetworkSendThread = new System.Threading.Thread(this.NetworkSendProcess);
            NetworkSendThread.Start();

            dispatcherUITimer          = new System.Windows.Threading.DispatcherTimer();
            dispatcherUITimer.Tick    += new EventHandler(ReadPacketQueueProcess);
            dispatcherUITimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
            dispatcherUITimer.Start();

            btnDisconnect.Enabled = false;

            DevLog.Write("프로그램 시작 !!!", LOG_LEVEL.INFO);
        }
示例#2
0
        public static void Process(JsonPacketData packet)
        {
            var packetType = (PACKET_ID)packet.PacketID;

            switch (packetType)
            {
            case PACKET_ID.SYSTEM_DISCONNECTD:
                MainFormRef.SetDisconnectd();
                break;

            case PACKET_ID.RESPONSE_LOGIN:
            {
                var resData   = JsonEnDecode.Decode <JsonPacketResponseLogin>(packet.JsonFormatData);
                var errorCode = (ERROR_CODE)resData.Result;

                if (errorCode == ERROR_CODE.NONE)
                {
                    MainFormRef.SetClientStatus(CLIENT_STATUS.LOGIN);
                    DevLog.Write(string.Format("로그인 성공"), LOG_LEVEL.INFO);
                }
                else
                {
                    DevLog.Write(string.Format("로그인 실패:{0}", errorCode.ToString()), LOG_LEVEL.ERROR);
                }
            }
            break;

            case PACKET_ID.RESPONSE_ENTER_LOBBY:
            {
                var resData = JsonEnDecode.Decode <JsonPacketResponseEnterLobby>(packet.JsonFormatData);

                var errorCode = (ERROR_CODE)resData.Result;

                if (errorCode == ERROR_CODE.NONE)
                {
                    MainFormRef.SetClientStatus(CLIENT_STATUS.LOBBY);
                    DevLog.Write(string.Format("로비 입장 성공"), LOG_LEVEL.INFO);
                }
                else
                {
                    DevLog.Write(string.Format("로비 입장 실패:{0}", errorCode.ToString()), LOG_LEVEL.ERROR);
                }
            }
            break;

            case PACKET_ID.RESPONSE_LEAVE_LOBBY:
            {
                var resData = JsonEnDecode.Decode <JsonPacketResponseLeaveLobby>(packet.JsonFormatData);

                var errorCode = (ERROR_CODE)resData.Result;

                if (errorCode == ERROR_CODE.NONE)
                {
                    MainFormRef.SetClientStatus(CLIENT_STATUS.LOGIN);
                    DevLog.Write(string.Format("로비 나가기 성공"), LOG_LEVEL.INFO);
                }
                else
                {
                    DevLog.Write(string.Format("로비 나가기 실패:{0}", errorCode.ToString()), LOG_LEVEL.ERROR);
                }
            }
            break;

            case PACKET_ID.NOTICE_CHAT:
            {
                var resData = JsonEnDecode.Decode <JsonPacketNoticeChat>(packet.JsonFormatData);

                var errorCode = (ERROR_CODE)resData.Result;

                if (errorCode == ERROR_CODE.NONE)
                {
                    MainFormRef.ChatToUI(resData.UserID, resData.Chat);
                }
                else
                {
                    DevLog.Write(string.Format("로비 채팅 실패:{0}", errorCode.ToString()), LOG_LEVEL.ERROR);
                }
            }
            break;

            default:
                break;
            }
        }