コード例 #1
0
ファイル: MainDB.cs プロジェクト: jk-kim113/CSharp_Project
        void ToPacket(DefinedProtocol.eToServer toServer, object str)
        {
            DefinedStructure.PacketInfo packet;
            packet._id   = (int)toServer;
            packet._data = new byte[1024];

            if (str != null)
            {
                byte[] temp = ConvertPacket.StructureToByteArray(str);
                for (int n = 0; n < temp.Length; n++)
                {
                    packet._data[n] = temp[n];
                }
                packet._totalSize = temp.Length;
            }
            else
            {
                packet._totalSize = packet._data.Length;
            }

            _toServerQueue.Enqueue(ConvertPacket.StructureToByteArray(packet));
        }
コード例 #2
0
ファイル: MainDB.cs プロジェクト: jk-kim113/CSharp_Project
        void FromServerQueue()
        {
            try
            {
                while (true)
                {
                    if (_fromServerQueue.Count != 0)
                    {
                        FromServerData fData = _fromServerQueue.Dequeue();

                        DefinedStructure.PacketInfo packet = new DefinedStructure.PacketInfo();
                        packet = (DefinedStructure.PacketInfo)ConvertPacket.ByteArrayToStructure(fData._data, packet.GetType(), fData._length);

                        switch ((DefinedProtocol.eFromServer)packet._id)
                        {
                        case DefinedProtocol.eFromServer.OverlapCheck_ID:

                            DefinedStructure.Packet_OverlapCheckID pOverlapCheck = new DefinedStructure.Packet_OverlapCheckID();
                            pOverlapCheck = (DefinedStructure.Packet_OverlapCheckID)ConvertPacket.ByteArrayToStructure(packet._data, pOverlapCheck.GetType(), packet._totalSize);

                            OverlapCheck_ID(pOverlapCheck._id, pOverlapCheck._index);

                            break;

                        case DefinedProtocol.eFromServer.JoinGame:

                            DefinedStructure.Packet_JoinGame pJoinGame = new DefinedStructure.Packet_JoinGame();
                            pJoinGame = (DefinedStructure.Packet_JoinGame)ConvertPacket.ByteArrayToStructure(packet._data, pJoinGame.GetType(), packet._totalSize);

                            JoinGame(pJoinGame._id, pJoinGame._pw, pJoinGame._index);

                            break;

                        case DefinedProtocol.eFromServer.LogIn:

                            DefinedStructure.Packet_LogIn pLogIn = new DefinedStructure.Packet_LogIn();
                            pLogIn = (DefinedStructure.Packet_LogIn)ConvertPacket.ByteArrayToStructure(packet._data, pLogIn.GetType(), packet._totalSize);

                            LogIn(pLogIn._id, pLogIn._pw, pLogIn._index);

                            break;

                        case DefinedProtocol.eFromServer.EnrollUserInfo:

                            DefinedStructure.Packet_MyInfo pMyInfo = new DefinedStructure.Packet_MyInfo();
                            pMyInfo = (DefinedStructure.Packet_MyInfo)ConvertPacket.ByteArrayToStructure(packet._data, pMyInfo.GetType(), packet._totalSize);

                            _dbQuery.UpdateUserInfo(pMyInfo._UUID, pMyInfo._name, pMyInfo._avatarIndex);

                            break;

                        case DefinedProtocol.eFromServer.ExitServer:

                            _conncetServer.Shutdown(SocketShutdown.Both);
                            _conncetServer.Close();
                            _conncetServer = null;

                            break;

                        case DefinedProtocol.eFromServer.SaveResult:

                            DefinedStructure.Packet_SaveResult pSaveResult = new DefinedStructure.Packet_SaveResult();
                            pSaveResult = (DefinedStructure.Packet_SaveResult)ConvertPacket.ByteArrayToStructure(packet._data, pSaveResult.GetType(), packet._totalSize);

                            SaveGameInfo(pSaveResult._UUID, pSaveResult._clearTime, pSaveResult._isWin);

                            break;
                        }
                    }

                    Thread.Sleep(10);
                }
            }
            catch (ThreadInterruptedException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
        }