示例#1
0
        /// <summary>
        /// 断线重连接
        /// </summary>
        /// <param name="account">账号</param>
        /// <param name="pswd">密码</param>
        /// <param name="validate_string">计费串</param>
        /// <param name="device_uid">设备号</param>
        /// <param name="in_stub">是否是本地副本(false)</param>
        /// <returns></returns>
        public bool LoginReconnect(string account, string pswd, string validate_string, string device_uid, bool in_stub = false)
        {
            if (account == null || pswd == null || validate_string == null || device_uid == null)
            {
                return(false);
            }

            StoreArchive ar = new StoreArchive(m_buffer, m_buffer.Length);

            ar.WriteInt8(GlobalClineMsgId.CLIENT_LOGIN); //消息ID
            ar.WriteInt32(MsgEncode.Instance.Version);   //版本号

            byte[] varify = new byte[4];
            ar.WriteUserDataNoLen(varify);                              //验证码
            ar.WriteUserData(MsgEncode.Instance.EncodeString(account)); //账号
            ar.WriteUserData(MsgEncode.Instance.EncodeString(pswd));    //密码
            ar.WriteString(validate_string);                            //登录串
            ar.WriteInt32(100);                                         //登录类型 LOGIN_TYPE_RECONNECT 100
            ar.WriteString(device_uid);

            string strPropMd5 = null;
            string strRecdMd5 = null;

            if (mRecver != null)
            {
                strPropMd5 = mRecver.GetPropertyTableMd5();
                strRecdMd5 = mRecver.GetRecordTableMd5();
            }

            if (strPropMd5 != null)
            {
                ar.WriteString(strPropMd5);
            }
            else
            {
                ar.WriteString("");
            }

            if (strRecdMd5 != null)
            {
                ar.WriteString(strRecdMd5);
            }
            else
            {
                ar.WriteString("");
            }

            if (in_stub)
            {
                ar.WriteInt8(1);
            }
            else
            {
                ar.WriteInt8(0);
            }

            return(m_sender.Send(ar.GetData(), ar.GetLength()));
        }
示例#2
0
        public bool Login(string account, string password, string device_uid)
        {
            StoreArchive ar = new StoreArchive(m_buffer, m_buffer.Length);

            ar.WriteInt8(GlobalClineMsgId.CLIENT_LOGIN); //消息ID

            ar.WriteInt32(MsgEncode.Instance.Version);   //版本号
            byte[] varify = new byte[4];
            ar.WriteUserDataNoLen(varify);

            ar.WriteUserData(MsgEncode.Instance.EncodeString(account));  //账号
            ar.WriteUserData(MsgEncode.Instance.EncodeString(password)); //密码

            ar.WriteString(device_uid);                                  //设备uiid
            ar.WriteString("0");                                         //登录串
            ar.WriteInt32(1);                                            //登录类型
            return(m_sender.Send(ar.GetData(), ar.GetLength()));
        }
示例#3
0
        public bool LoginReconnect(string account, string pswd, string validate_string, string device_uid, bool in_stub = false, string strRoleName = "", string strRoleInfo = "")
        {
            if (account == null || pswd == null || validate_string == null || device_uid == null)
            {
                return(false);
            }

            StoreArchive ar = StoreArchive.Load(m_buffer, m_buffer.Length);

            ar.WriteInt8(GlobalClineMsgId.CLIENT_LOGIN);//消息ID
            int iVerson = fxVerify.GetVersion();

            ar.WriteInt32(iVerson);//版本号
            Array.Clear(varifyLoginReconnect, 0, varifyLoginReconnect.Length);
            fxVerify.GetLoginVerify(ref varifyLoginReconnect);
            ar.WriteUserDataNoLen(varifyLoginReconnect);

            byte[] btAccount     = null;
            byte[] btPassword    = null;
            int    iAccountSize  = 0;
            int    iPasswordSize = 0;
            bool   bVerifyok1    = fxVerify.EncodeAccount(account, ref btAccount, ref iAccountSize);
            bool   bVerifyok2    = fxVerify.EncodePassword(pswd, ref btPassword, ref iPasswordSize);

            if (bVerifyok1 && bVerifyok2)
            {
                ar.WriteUserData(btAccount);  //账号
                ar.WriteUserData(btPassword); //密码
            }
            else
            {
                ar.WriteString(account);
                ar.WriteString(pswd);
            }
            ar.WriteString(validate_string); //登录串
            ar.WriteInt32(100);              //登录类型 LOGIN_TYPE_RECONNECT 100
            if (in_stub)
            {
                ar.WriteInt8(1);
            }
            else
            {
                ar.WriteInt8(0);
            }
            ar.WriteString(device_uid);
            string strPropMd5 = string.Empty;
            string strRecdMd5 = string.Empty;

            if (mRecver != null)
            {
                strPropMd5 = mRecver.GetPropertyTableMd5();
                strRecdMd5 = mRecver.GetRecordTableMd5();
            }

            if (strPropMd5 != null)
            {
                ar.WriteString(strPropMd5);
            }
            else
            {
                ar.WriteString(string.Empty);
            }

            if (strRecdMd5 != null)
            {
                ar.WriteString(strRecdMd5);
            }
            else
            {
                ar.WriteString(string.Empty);
            }
            //发送角色名称
            if (strRoleName != null)
            {
                ar.WriteWideStr(strRoleName);
            }
            else
            {
                ar.WriteWideStr(string.Empty);
            }
            //发送角色名称
            if (strRoleInfo != null)
            {
                ar.WriteString(strRoleInfo);
            }
            else
            {
                ar.WriteString(string.Empty);
            }
            return(m_sender.Send(ar.GetData(), ar.GetLength()));
        }
示例#4
0
        //发送带验证码的登录消息
        public bool LoginVerify(string account, string password, string verify, string device_uid)
        {
            if (account == null || password == null || verify == null || device_uid == null)
            {
                return(false);
            }

            StoreArchive ar = StoreArchive.Load(m_buffer, m_buffer.Length);

            ar.WriteInt8(GlobalClineMsgId.CLIENT_LOGIN); //消息ID
            ar.WriteInt32(OUTER_PROTOCOL_VERSION);       //版本号

            byte[] varify = Encoding.Default.GetBytes(verify);
            ar.WriteUserDataNoLen(varify);//验证码
            byte[] btAccount     = null;
            byte[] btPassword    = null;
            int    iAccountSize  = 0;
            int    iPasswordSize = 0;
            bool   bVerifyok1    = fxVerify.EncodeAccount(account, ref btAccount, ref iAccountSize);
            bool   bVerifyok2    = fxVerify.EncodePassword(password, ref btPassword, ref iPasswordSize);

            if (bVerifyok1 && bVerifyok2)
            {
                ar.WriteUserData(btAccount);  //账号
                ar.WriteUserData(btPassword); //密码
            }
            else
            {
                ar.WriteString(account);
                ar.WriteString(password);
            }
            ar.WriteString(string.Empty); //登录串
            ar.WriteInt32(1);             //登录类型 LOGIN_TYPE_RECONNECT 100
            ar.WriteInt8(0);              ///是否是本地副本
            ar.WriteString(device_uid);

            string strPropMd5 = string.Empty;
            string strRecdMd5 = string.Empty;

            if (mRecver != null)
            {
                strPropMd5 = mRecver.GetPropertyTableMd5();
                strRecdMd5 = mRecver.GetRecordTableMd5();
            }
            if (strPropMd5 != null)
            {
                ar.WriteString(strPropMd5);
            }
            else
            {
                ar.WriteString(string.Empty);
            }
            if (strRecdMd5 != null)
            {
                ar.WriteString(strRecdMd5);
            }
            else
            {
                ar.WriteString(string.Empty);
            }

            return(m_sender.Send(ar.GetData(), ar.GetLength()));
        }
示例#5
0
        public bool Login(string account, string password, string device_uid)
        {
            StoreArchive ar = StoreArchive.Load(m_buffer, m_buffer.Length);

            ar.WriteInt8(GlobalClineMsgId.CLIENT_LOGIN);//消息ID
            int nVersion = fxVerify.GetVersion();

            ar.WriteInt32(nVersion);//版本号
            Array.Clear(varifyLogin, 0, varifyLogin.Length);
            fxVerify.GetLoginVerify(ref varifyLogin);
            ar.WriteUserDataNoLen(varifyLogin);

            byte[] btAccount     = null;
            byte[] btPassword    = null;
            int    iAccountSize  = 0;
            int    iPasswordSize = 0;
            bool   bVerifyok1    = fxVerify.EncodeAccount(account, ref btAccount, ref iAccountSize);
            bool   bVerifyok2    = fxVerify.EncodePassword(password, ref btPassword, ref iPasswordSize);

            if (bVerifyok1 && bVerifyok2)
            {
                ar.WriteUserData(btAccount);  //账号
                ar.WriteUserData(btPassword); //密码
            }
            else
            {
                ar.WriteString(account);
                ar.WriteString(password);
            }
            ar.WriteString("0"); //登录串
            ar.WriteInt32(1);    //登录类型
            ar.WriteInt8(0);
            ar.WriteString(device_uid);
            string strPropMd5 = string.Empty;
            string strRecdMd5 = string.Empty;

            if (mRecver != null)
            {
                strPropMd5 = mRecver.GetPropertyTableMd5();
                strRecdMd5 = mRecver.GetRecordTableMd5();
            }

            if (strPropMd5 != null)
            {
                ar.WriteString(strPropMd5);
            }
            else
            {
                ar.WriteString(string.Empty);
            }

            if (strRecdMd5 != null)
            {
                ar.WriteString(strRecdMd5);
            }
            else
            {
                ar.WriteString(string.Empty);
            }

            return(m_sender.Send(ar.GetData(), ar.GetLength()));
        }