// 로그인 요청
        private void button2_Click(object sender, EventArgs e)
        {
            var loginReq = new LoginReqPacket();

            loginReq.UserID = textBoxUserID.Text;
            loginReq.UserPW = textBoxUserPW.Text;

            var bodyData = loginReq.ToBytes();

            PostSendPacket(PACKET_ID.PACKET_ID_LOGIN_REQ, bodyData);
            DevLog.Write($"로그인 요청:  {textBoxUserID.Text}, {textBoxUserPW.Text}");
        }
Exemplo n.º 2
0
        // LobbyList
        void PacketProcess_LobbyListResponse(byte[] bodyData)
        {
            var responsePkt = new LobbyListResPacket();

            responsePkt.FromBytes(bodyData);

            for (int i = 0; i < responsePkt.LobbyCount; i++)
            {
                listBoxLobby.Items.Add(responsePkt.lobbyListinfo[i].GetValue());
            }

            DevLog.Write($"로비 요청 결과:  {(ERROR_CODE)responsePkt.Result}");
        }
Exemplo n.º 3
0
        // 로그인 요청
        private void button2_Click(object sender, EventArgs e)
        {
            var loginReq = new PKTReqLogin();

            loginReq.UserID    = textBoxUserID.Text;
            loginReq.AuthToken = textBoxUserPW.Text;

            var sendPacketData = MessagePackSerializer.Serialize(loginReq);

            PostSendPacket(PACKET_ID.REQ_LOGIN, sendPacketData);
            DevLog.Write($"로그인 요청:  {textBoxUserID.Text}, {textBoxUserPW.Text}");
            DevLog.Write($"로그인 요청: {ToReadableByteArray(sendPacketData)}");
        }
Exemplo n.º 4
0
        private void btnRoomRelay_Click(object sender, EventArgs e)
        {
            if (textBoxRelay.Text.IsEmpty())
            {
                MessageBox.Show("릴레이 할 데이터가 없습니다");
                return;
            }

            var bodyData = Encoding.UTF8.GetBytes(textBoxRelay.Text);

            PostSendPacket(PACKET_ID.PACKET_ID_ROOM_RELAY_REQ, bodyData);
            DevLog.Write($"방 릴레이 요청");
        }
Exemplo n.º 5
0
        void PacketProcess_RoomUserListNotify(byte[] bodyData)
        {
            var notifyPkt = new RoomUserListNtfPacket();

            notifyPkt.FromBytes(bodyData);

            for (int i = 0; i < notifyPkt.UserCount; ++i)
            {
                AddRoomUserList(notifyPkt.UserUniqueIdList[i], notifyPkt.UserIDList[i]);
            }

            DevLog.Write($"방의 기존 유저 리스트 받음");
        }
        void PacketProcess(ClientNetLib.PacketData packet)
        {
            var packetType = (PACKET_ID)packet.PacketID;

            if (PacketFuncDic.ContainsKey(packetType))
            {
                PacketFuncDic[packetType](packet.BodyData);
            }
            else
            {
                DevLog.Write("Unknown Packet Id: " + packet.PacketID.ToString());
            }
        }
        void PacketProcess_LobbyEnterRes(byte[] bodyData)
        {
            var responsePkt = new LobbyEnterResPacket();

            responsePkt.Decode(bodyData);

            DevLog.Write($"로비 입장 결과:  {(ERROR_CODE)responsePkt.Result}");

            if ((ERROR_CODE)responsePkt.Result == ERROR_CODE.NONE)
            {
                labelStatus.Text = "로비에 입장 완료";
            }
        }
        void PacketProcess_GameEndRes(byte[] bodyData)
        {
            var responsePkt = new GameEndResPacket();

            responsePkt.Decode(bodyData);

            DevLog.Write($"게임 서버 게임 완료 요청 결과:  {(ERROR_CODE)responsePkt.Result}");

            if ((ERROR_CODE)responsePkt.Result == ERROR_CODE.NONE)
            {
                labelStatus.Text = "게임 완료 상태";
            }
        }
        void PacketProcess_RoomLeaveRes(byte[] bodyData)
        {
            var responsePkt = new RoomLeaveResPacket();

            responsePkt.Decode(bodyData);

            DevLog.Write($"게임 서버 방 나가기 요청 결과:  {(ERROR_CODE)responsePkt.Result}");

            if ((ERROR_CODE)responsePkt.Result == ERROR_CODE.NONE)
            {
                labelStatus.Text = "게임 방을 나간 상태";
            }
        }
        void PacketProcess_GameLoginRes(byte[] bodyData)
        {
            var responsePkt = new GameServerLoginResPacket();

            responsePkt.Decode(bodyData);

            DevLog.Write($"게임 서버에 로그인 결과:  {(ERROR_CODE)responsePkt.Result}");

            if ((ERROR_CODE)responsePkt.Result == ERROR_CODE.NONE)
            {
                labelStatus.Text = "게임 서버에 로그인 완료";
            }
        }
        void PacketProcess_LobbyMatchRes(byte[] bodyData)
        {
            var responsePkt = new LobbyMatchResPacket();

            responsePkt.Decode(bodyData);

            DevLog.Write($"매칭 요청 결과:  {(ERROR_CODE)responsePkt.Result}");

            if ((ERROR_CODE)responsePkt.Result == ERROR_CODE.NONE)
            {
                labelStatus.Text = "매칭 요청 중인 상태";
            }
        }
Exemplo n.º 12
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textSendText.Text))
            {
                MessageBox.Show("보낼 텍스트를 입력하세요");
                return;
            }

            var body = Encoding.UTF8.GetBytes(textSendText.Text);

            PostSendPacket(PACKET_ID.PACKET_ID_ECHO, body);

            DevLog.Write($"Echo 요청:  {textSendText.Text}, {body.Length}");
        }
Exemplo n.º 13
0
        void PacketProcess_RoomChatResponse(byte[] bodyData)
        {
            var responsePkt = new RoomChatResPacket();

            responsePkt.FromBytes(bodyData);

            var errorCode = (ERROR_CODE)responsePkt.Result;
            var msg       = $"방 채팅 요청 결과:  {(ERROR_CODE)responsePkt.Result}";

            if (errorCode == ERROR_CODE.ERROR_NONE)
            {
                DevLog.Write(msg, LOG_LEVEL.ERROR);
            }
        }
        private void mainForm_Load(object sender, EventArgs e)
        {
            TcpNetLobbyServer.DebugPrintFunc = WriteDebugLog;

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

            btnDisconnect.Enabled = false;

            SetPacketHandler();
            DevLog.Write("프로그램 시작 !!!", LOG_LEVEL.INFO);
        }
Exemplo n.º 15
0
        private void btnRoomChat_Click(object sender, EventArgs e)
        {
            if (textBoxRoomSendMsg.Text.IsEmpty())
            {
                MessageBox.Show("채팅 메시지를 입력하세요");
                return;
            }

            var requestPkt = new RoomChatReqPacket();

            requestPkt.SetValue(textBoxRoomSendMsg.Text);

            PostSendPacket(PACKET_ID.REQ_ROOM_CHAT, requestPkt.ToBytes());
            DevLog.Write($"방 채팅 요청");
        }
        // 간이 채팅
        private void button3_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textSendText.Text))
            {
                MessageBox.Show("보낼 텍스트를 입력하세요");
                return;
            }

            string message = $"[{DateTime.Now.ToString("HH:mm:ss")}] {textBoxUserID.Text}: {textSendText.Text}";
            var    body    = Encoding.UTF8.GetBytes(message);

            PostSendPacket(PACKET_ID.PACKET_ID_SIMPLE_CHAT, body);

            DevLog.Write($"Simple Chat 요청:  {textSendText.Text}, {body.Length}");
        }
Exemplo n.º 17
0
        void NetworkReadProcess()
        {
            const Int16 PacketHeaderSize = PacketDef.PACKET_HEADER_SIZE;

            while (IsNetworkThreadRunning)
            {
                if (Network.IsConnected() == false)
                {
                    System.Threading.Thread.Sleep(1);
                    continue;
                }

                var recvData = Network.Receive();

                if (recvData != null)
                {
                    PacketBuffer.Write(recvData.Item2, 0, recvData.Item1);

                    while (true)
                    {
                        var data = PacketBuffer.Read();
                        if (data.Count < 1)
                        {
                            break;
                        }

                        var packet = new PacketData();
                        packet.DataSize = (short)(data.Count - PacketHeaderSize);
                        packet.PacketID = BitConverter.ToInt16(data.Array, data.Offset + 2);
                        packet.Type     = (SByte)data.Array[(data.Offset + 4)];
                        packet.BodyData = new byte[packet.DataSize];
                        Buffer.BlockCopy(data.Array, (data.Offset + PacketHeaderSize), packet.BodyData, 0, (data.Count - PacketHeaderSize));
                        lock (((System.Collections.ICollection)RecvPacketQueue).SyncRoot)
                        {
                            RecvPacketQueue.Enqueue(packet);
                        }
                    }

                    DevLog.Write($"받은 데이터 크기: {recvData.Item1}", LOG_LEVEL.INFO);
                }
                else
                {
                    Network.Close();
                    SetDisconnectd();
                    DevLog.Write("서버와 접속 종료 !!!", LOG_LEVEL.INFO);
                }
            }
        }
Exemplo n.º 18
0
        // 로비 입장 요청
        private void button4_Click(object sender, EventArgs e)
        {
            var lobbyEnterReq = new LobbyEnterReqPacket();


            // TODO 문자열 떼기.. -예외처리 필요
            string[] LobbyListInfoStr = listBoxLobby.GetItemText(listBoxLobby.SelectedItem).Split(',');
            string[] LobbyIndexStr    = LobbyListInfoStr[0].Split(':');

            lobbyEnterReq.SetValue(Convert.ToInt32(LobbyIndexStr[1].Replace(" ", "")));

            PostSendPacket(PACKET_ID.LOBBY_ENTER_REQ, lobbyEnterReq.ToBytes());
            //DevLog.Write($"로비 입장 요청");

            DevLog.Write($"로비 입장 요청:  {listBoxLobby.GetItemText(listBoxLobby.SelectedItem)}");
        }
Exemplo n.º 19
0
        void PacketProcess(PacketData packet)
        {
            var packetType = (PACKET_ID)packet.PacketID;

            //DevLog.Write("Packet Error:  PacketID:{packet.PacketID.ToString()},  Error: {(ERROR_CODE)packet.Result}");
            //DevLog.Write("RawPacket: " + packet.PacketID.ToString() + ", " + PacketDump.Bytes(packet.BodyData));

            if (PacketFuncDic.ContainsKey(packetType))
            {
                PacketFuncDic[packetType](packet.BodyData);
            }
            else
            {
                DevLog.Write("Unknown Packet Id: " + packet.PacketID.ToString());
            }
        }
Exemplo n.º 20
0
        private void mainForm_Load(object sender, EventArgs e)
        {
            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(BackGroundProcess);
            dispatcherUITimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
            dispatcherUITimer.Start();

            btnDisconnect.Enabled = false;

            DevLog.Write("프로그램 시작 !!!", LOG_LEVEL.INFO);
        }
Exemplo n.º 21
0
        public void PostSendPacket(PACKET_ID packetID, byte[] packetData)
        {
            if (Network.IsConnected() == false)
            {
                DevLog.Write("서버 연결이 되어 있지 않습니다", LOG_LEVEL.ERROR);
                return;
            }

            var header = new MsgPackPacketHeadInfo();

            header.TotalSize = (UInt16)packetData.Length;
            header.Id        = (UInt16)packetID;
            header.Type      = 0;
            header.Write(packetData);

            SendPacketQueue.Enqueue(packetData);
        }
Exemplo n.º 22
0
        void PacketProcess(byte[] packet)
        {
            var header = new MsgPackPacketHeadInfo();

            header.Read(packet);

            var packetType = (PACKET_ID)header.Id;

            //DevLog.Write("Packet Error:  PacketID:{packet.PacketID.ToString()},  Error: {(ERROR_CODE)packet.Result}");
            //DevLog.Write("RawPacket: " + packet.PacketID.ToString() + ", " + PacketDump.Bytes(packet.BodyData));

            if (PacketFuncDic.ContainsKey(packetType))
            {
                PacketFuncDic[packetType](packet);
            }
            else
            {
                DevLog.Write("Unknown Packet Id: " + packetType);
            }
        }
Exemplo n.º 23
0
        void NetworkReadProcess()
        {
            while (IsNetworkThreadRunning)
            {
                if (Network.IsConnected() == false)
                {
                    continue;
                }

                var recvData = Network.Receive();

                if (recvData != null)
                {
                    DevLog.Write($"받은 데이터: {recvData.Item2}", LOG_LEVEL.INFO);
                }
                else
                {
                    DevLog.Write("서버와 접속 종료 !!!", LOG_LEVEL.INFO);
                }
            }
        }
Exemplo n.º 24
0
        private void mainForm_Load(object sender, EventArgs e)
        {
            PacketBuffer.Init((8096 * 10), MsgPackPacketHeadInfo.HeadSize, 1024);

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

            IsBackGroundProcessRunning = true;
            dispatcherUITimer          = new System.Windows.Forms.Timer();
            dispatcherUITimer.Tick    += new EventHandler(BackGroundProcess);
            dispatcherUITimer.Interval = 100;
            dispatcherUITimer.Start();

            btnDisconnect.Enabled = false;

            SetPacketHandler();
            DevLog.Write("프로그램 시작 !!!", LOG_LEVEL.INFO);
        }
Exemplo n.º 25
0
        void NetworkReadProcess()
        {
            while (IsNetworkThreadRunning)
            {
                if (Network.IsConnected() == false)
                {
                    System.Threading.Thread.Sleep(1);
                    continue;
                }

                var recvData = Network.Receive();

                if (recvData != null)
                {
                    PacketBuffer.Write(recvData.Item2, 0, recvData.Item1);

                    while (true)
                    {
                        var data = PacketBuffer.Read();
                        if (data == null)
                        {
                            break;
                        }

                        lock (((System.Collections.ICollection)RecvPacketQueue).SyncRoot)
                        {
                            RecvPacketQueue.Enqueue(data);
                        }
                    }
                    //DevLog.Write($"받은 데이터: {recvData.Item2}", LOG_LEVEL.INFO);
                }
                else
                {
                    Network.Close();
                    SetDisconnectd();
                    DevLog.Write("서버와 접속 종료 !!!", LOG_LEVEL.INFO);
                }
            }
        }
Exemplo n.º 26
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            string address = textBoxIP.Text;

            if (checkBoxLocalHostIP.Checked)
            {
                address = "127.0.0.1";
            }

            int port = Convert.ToInt32(textBoxPort.Text);

            if (Network.Connect(address, port))
            {
                labelStatus.Text      = string.Format("{0}. 서버에 접속 중", DateTime.Now);
                btnConnect.Enabled    = false;
                btnDisconnect.Enabled = true;

                DevLog.Write($"서버에 접속 중", LOG_LEVEL.INFO);
            }
            else
            {
                labelStatus.Text = string.Format("{0}. 서버에 접속 실패", DateTime.Now);
            }
        }
Exemplo n.º 27
0
        void PacketProcess_LoginResponse(byte[] packetData)
        {
            var responsePkt = MessagePackSerializer.Deserialize <PKTResLogin>(packetData);

            DevLog.Write($"로그인 결과:  {(ERROR_CODE)responsePkt.Result}");
        }
Exemplo n.º 28
0
 void PacketProcess_Echo(byte[] bodyData)
 {
     DevLog.Write($"Echo 받음:  {bodyData.Length}");
 }
 void WriteDebugLog(string msg)
 {
     DevLog.Write(msg, LOG_LEVEL.DEBUG);
 }
Exemplo n.º 30
0
 private void btn_RoomLeave_Click(object sender, EventArgs e)
 {
     PostSendPacket(PACKET_ID.REQ_ROOM_LEAVE, null);
     DevLog.Write($"방 입장 요청:  {textBoxRoomNumber.Text} 번");
 }