/// <summary>
        ///
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        internal static void CharServerConnected(NetState netState, PacketReader packetReader)
        {
            // 错误 不可能有创建
            if (netState.ExtendData is CharServerExtendData == true)
            {
                return;
            }
            else
            {
                netState.ExtendData = null;
            }

            if (packetReader.Size < 6 /*( 6 + 0 )*/)
            {
                return;
            }

            // 不检查网络是否活动
            netState.IsCheckActivity = false;

            string l_strWorldPassword = packetReader.ReadStringSafe();

            if (l_strWorldPassword == Program.ConfigInfo.WorldPassword)
            {
                CharServerExtendData l_ExtendData = new CharServerExtendData();

                l_ExtendData.IsLoggedIn = true;

                netState.ExtendData = l_ExtendData;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        internal static void CharServerAction(NetState netState, PacketReader packetReader)
        {
            CharServerExtendData l_ExtendData = netState.ExtendData as CharServerExtendData;

            if (l_ExtendData == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData == null error!");
                return;
            }

            if (l_ExtendData.IsLoggedIn == false)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData.m_bIsLoggedIn == false error!");
                return;
            }

            if (packetReader.Size < 7 /*6 + 1 + ?*/)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - packetReader.Size < 7 error!");
                return;
            }

            byte l_Action = packetReader.ReadByte();

            switch (l_Action)
            {
            case 1:     // Disconnect Character

                uint l_iAccountGuid = packetReader.ReadUInt32();

                CharServer_Action01(netState, l_iAccountGuid);

                break;

            default:

                break;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        internal static void CharServerDisconnectUser(NetState netState, PacketReader packetReader)
        {
            CharServerExtendData l_ExtendData = netState.ExtendData as CharServerExtendData;

            if (l_ExtendData == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData == null error!");
                return;
            }

            if (l_ExtendData.IsLoggedIn == false)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData.m_bIsLoggedIn == false error!");
                return;
            }

            if (packetReader.Size < 7 /*6 + 1 + ?*/)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - packetReader.Size < 7 error!");
                return;
            }

            uint iAccountGuid = packetReader.ReadUInt32();

            NetState l_NetState = ProcessNet.GetClientByAccountGuid(iAccountGuid);

            if (l_NetState == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction_01(...) - l_NetState == null error!");
                return;
            }

            if (l_NetState.Running)
            {
                l_NetState.Dispose(true);
            }
        }