/// <summary>
        /// 得到网络配置值并验证该用户名密码(同步方式)
        /// </summary>
        public string  GetLoginS(string uid, string upsw, string uip)
        {
            //网络配置值初始化
            string[] servinfo = DataConfig.GetServerInfo();
            string   StrIp    = servinfo[0];
            string   StrPort  = servinfo[1];
            int      port     = int.Parse(StrPort);

            ShareData.LocalIp   = StrIp;
            ShareData.LocalPort = port;

            TcpCli    client = new TcpCli(ShareData.LocalIp, ShareData.LocalPort);
            MsgStruts msg    = new MsgStruts();

            msg.command      = msgCommand.GetLogin;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            string msgStr = uid + "|" + upsw + "|" + uip;

            msg.Data = _coder.GetEncodingBytes(msgStr);
            client.ReceiverDataComplate = AsyncCallback;
            MsgStruts msgb     = client.SendAndBack(msg);
            string    loginStr = _coder.GetEncodingString(msgb.Data, msgb.Data.Length);

            return(loginStr);
        }
 /// <summary>
 /// 得到客户端缓存(同步)
 /// </summary>
 public void GetCahceSyn(string userid, CallBackEvent callback)
 {
     try
     {
         TcpCli    client = new TcpCli(ShareData.LocalIp, ShareData.LocalPort);
         MsgStruts msg    = new MsgStruts();
         msg.command      = msgCommand.GetCache;
         msg.msgtype      = msgType.SendText;
         msg.msgsendstate = msgSendState.single;
         msg.Data         = _coder.GetEncodingBytes(userid);
         if (SystemConfig.GetCacheWaitSleep)
         {//socket缓冲区8192问题没有解决时使用延时加载形式去加载缓存数据
             msg = client.SendAndBack(msg);
             callback(msg);
         }
         else
         {
             client.AsyncSendWithReceiverData(msg, callback);
         }
     }
     catch (Exception ex)
     {
         ex.ToString().ErrorLogger();
         ShareData.Log.Info(ex);
         callback(null);
     }
     //return ClientCache.SetCache(msgb.Data);
 }
        /// <summary>
        /// 得到数字提醒,全部在线都发送
        /// </summary>
        public void GetAlertNum()
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetAlertNum;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 得到游戏角色
        /// </summary>
        /// <param name="whereStr"></param>
        public void GetGameRolesCR(string whereStr)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetGameRolesCR;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = _coder.GetEncodingBytes(whereStr);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 编辑工单(服务端不回复信息)
        /// </summary>
        public void EditTaskNoReturn(GSSModel.Tasks task)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.EditTaskNoReturn;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = DataSerialize.GetByteFromObject(task);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 得到客户端缓存
        /// </summary>
        public void GetCahce(string userid)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetCache;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = _coder.GetEncodingBytes(userid);
            _tcpcli.Send(msg);
        }
        public void SendEmail(int formId, GSSModel.Request.ClientData clientparam)
        {
            MsgStruts msg = new MsgStruts()
            {
                msgtype = msgType.SendText, command = msgCommand.SendEmailToRoles, msgsendstate = msgSendState.single
            };

            msg.Data = _coder.GetEncodBytes(clientparam);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 得到游戏帐号
        /// </summary>
        /// <param name="whereStr"></param>
        public void GetGameUsersC(MsgParam msgparam)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetGameUsersC;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = _coder.GetEncodBytes(msgparam);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 执行SQL语句
        /// </summary>
        /// <param name="sqlStr"></param>
        public void ExcSql(string sqlStr)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.ExcSql;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = _coder.GetEncodingBytes(sqlStr);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 得到工单列表
        /// </summary>
        /// <param name="whereStr"></param>
        public void GetAllTasks(string param, string whereStr)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetAllTasks;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.MsgParam.p0  = param;
            msg.Data         = _coder.GetEncodingBytes(whereStr);
            _tcpcli.Send(msg);
        }
        private void LoginComplateQueryCacheCallBack(object cache)
        {
            "loading cache end".Logger();
            MsgStruts msgb = cache as MsgStruts;

            try
            {
                if (cache == null)
                {
                    this.DialogResult = DialogResult.No;
                    string tip = "Error,please see above tip. ";
                    tip.Logger();
                    ShareData.Log.Info(tip);
                    MsgBox.Show(LanguageResource.Language.Tip_LoseCacheRefuseComing, LanguageResource.Language.Tip_Tip, MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error);
                    return;
                }
                System.Data.DataSet ds = DataSerialize.GetDatasetFromByte(msgb.Data);
                if (ds == null || ds.Tables.Count == 0)
                {
                    string temp = "Because the network query Cache error.refuse use login,in fact use login success";
                    temp.Logger();
                    this.DialogResult = DialogResult.No;
                    ShareData.Log.Info(temp);
                    MsgBox.Show(LanguageResource.Language.Tip_LoseCacheRefuseComing, LanguageResource.Language.Tip_Tip, MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error);
                    return;
                }
                int tables = ds.Tables.Count;
                if (SystemConfig.SyncVersionCache)
                {
                    DataTable version = ds.Tables["T_Version"];
                    object    obj     = version.Rows[0]["F_DB_Version"];
                    ds.Tables["T_Version"].Dispose();
                    string ver = string.Empty;
                    if (obj != null)
                    {
                        ver = obj.ToString();
                    }
                    //转换为文件流
                    System.IO.StreamWriter sr = new System.IO.StreamWriter(System.Windows.Forms.Application.StartupPath + "/GSSDATA/Version.DAT", false);
                    sr.Write(ver);
                    sr.Close();
                }
                (" [table]" + tables).Logger();
                ClientCache.SetCache(msgb.Data);
                ShareData.UserPower = ClientCache.GetUserPower(ShareData.UserID);
                this.DialogResult   = DialogResult.OK;
                "cache convert complae".Logger();
            }
            catch (Exception ex)
            {
                ex.ToString().ErrorLogger();
                MsgBox.Show(ex.Message, LanguageItems.BaseLanguageItem.Tip_Tip, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        ///  游戏工具:清空防沉迷
        /// </summary>
        public void GameResetChildInfo(int formid, string TaskID)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GameResetChildInfo;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            string sendtr = formid.ToString() + "|" + TaskID + "";

            msg.Data = _coder.GetEncodingBytes(sendtr);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 增加工单
        /// </summary>
        /// <param name="task"></param>
        public MsgStruts DownloadTemplateFile(GSSModel.TemplateFile task)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.DownloadTemplateFile;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = DataSerialize.GetByteFromObject(task);
            MsgStruts msgb = _tcpcli.SendAndBack(msg);

            return(msgb);
        }
        public void SendTextToService(GSSModel.Request.ClientData data, msgCommand command)
        {
            MsgStruts str = new MsgStruts()
            {
                msgsendstate = msgSendState.single,
                msgtype      = msgType.SendText,
                command      = command
            };

            str.Data = DataSerialize.GetByteFromObject(data);
            _tcpcli.Send(str);
        }
        /// <summary>
        ///  游戏工具:解封
        /// </summary>
        /// <param name="UserorRole">是帐户还是角色,帐号:1 角色:2</param>
        public void GameNoLockUR(int formid, int UserorRole, string TaskID)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GameNoLockUR;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            string lockStr = formid.ToString() + "|" + UserorRole.ToString() + "|" + TaskID + "";

            msg.Data = _coder.GetEncodingBytes(lockStr);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 客户端退出
        /// </summary>
        public void Login11(string uid, string upsw, string uip)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetLogin;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            string msgStr = uid + "|" + upsw + "|" + uip;

            msg.Data = _coder.GetEncodingBytes(msgStr);
            _tcpcli.Send(msg);
        }
Beispiel #17
0
        private void SendAlert(Session Client)
        {
            Session   client = (Session)_tcpsvr.SessionTable[Client.ID];
            DataSet   ds     = dbhandle.GetAlertNum();
            MsgStruts msg    = new MsgStruts();

            msg.command      = msgCommand.GetAlertNum;
            msg.msgtype      = msgType.SendDataset;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = DataSerialize.GetDataSetSurrogateZipBYtes(ds);

            _tcpsvr.Send(client, msg);
        }
        /// <summary>
        /// 删除全服邮件
        /// </summary>
        /// <param name="taskid"></param>
        /// <returns></returns>
        public string DeleteFullServiceEmail(string taskid)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.DeleteFullServiceEmail;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.MsgParam.p0  = taskid;
            MsgStruts msgb    = _tcpcli.SendAndBack(msg);
            string    backStr = _coder.GetEncodingString(msgb.Data, msgb.Data.Length);

            return(backStr);
        }
        /// <summary>
        /// 游戏工具:发奖
        /// </summary>
        /// <param name="task"></param>
        public string GameGiftAwardDo(string taskid)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GameGiftAwardDo;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.MsgParam.p0  = taskid;
            MsgStruts msgb    = _tcpcli.SendAndBack(msg);
            string    backStr = _coder.GetEncodingString(msgb.Data, msgb.Data.Length);

            return(backStr);
        }
        public void SendTaskContainerLogicData(GSSModel.Request.ClientData data)
        {
            MsgStruts str = new MsgStruts()
            {
                msgsendstate = msgSendState.single,
                msgtype      = msgType.SendText,
                command      = msgCommand.CreateTaskContainerLogic
            };

            str.Data = DataSerialize.GetByteFromObject(data);
            string.Format("command:[{0}] Client send service bytes:[{1}]", str.command, str.Data.Length);
            _tcpcli.Send(str);
        }
        /// <summary>
        /// 编辑工单(同步)
        /// </summary>
        /// <param name="task"></param>
        public string EditTaskSyn(GSSModel.Tasks task)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.EditTask;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = DataSerialize.GetByteFromObject(task);

            MsgStruts msgb    = _tcpcli.SendAndBack(msg);
            string    backStr = _coder.GetEncodingString(msgb.Data, msgb.Data.Length);

            return(backStr);
        }
        /// <summary>
        /// 得到客户端缓存(同步)
        /// </summary>
        public bool GetCahceSyn(string userid)
        {
            TcpCli    client = new TcpCli(ShareData.LocalIp, ShareData.LocalPort);
            MsgStruts msg    = new MsgStruts();

            msg.command      = msgCommand.GetCache;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = _coder.GetEncodingBytes(userid);
            MsgStruts msgb = client.SendAndBack(msg);
            DataSet   ds   = DataSerialize.GetDatasetFromByte(msgb.Data);

            return(ClientCache.SetCache(msgb.Data));
        }
        public void BindCommandWithSend(msgCommand cmd, int formid, GSSModel.Tasks task, object sendData)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = cmd;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            GSSModel.Request.ClientData client = new GSSModel.Request.ClientData();
            client.FormID = formid;
            client.Data   = new object[] { task, sendData };
            //json 序列化
            msg.Data = DataSerialize.GetByteFromObject(client);
            _tcpcli.Send(msg);
        }
        public void AddFullServiceEmail(int formId, GSSModel.Request.LoginAwardTask awardTask)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.AddFullServiceEmail;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            GSSModel.Request.ClientData data = new GSSModel.Request.ClientData()
            {
                FormID = formId, Data = awardTask
            };
            msg.Data = DataSerialize.GetByteFromObject(data);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="formid"></param>
        /// <param name="proname"></param>
        /// <param name="parameters"></param>
        public void ExcPro(string formid, string proname, SqlParameter parameters)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.ExcPro;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            string param = DataSerialize.GetStringFromSqlParameter(parameters);

            string sqlStr = formid + "|" + proname + "|" + param;//格式 窗口ID+存储过程+参数

            msg.Data = _coder.GetEncodingBytes(sqlStr);
            _tcpcli.Send(msg);
        }
        /// <summary>
        /// 得到工单列表(同步)
        /// </summary>
        /// <param name="whereStr"></param>
        public DataSet GetAllTasksSyn(string whereStr)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetAllTasks;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.Data         = _coder.GetEncodingBytes(whereStr);
            MsgStruts msgb = _tcpcli.SendAndBack(msg);
            DataSet   ds   = DataSerialize.GetDatasetFromByte(msgb.Data);

            ClientCache.SetTaskCache(msgb.Data, "TaskList");
            return(ds);
        }
        /// <summary>
        /// 得到工单列表
        /// </summary>
        /// <param name="whereStr"></param>
        public void GetAllTasks(string param, string whereStr, string fieldName, string orderStr, int PageSize, int PageIndex)
        {
            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.GetAllTasks;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.MsgParam.p0  = param;
            msg.MsgParam.p1  = fieldName;
            msg.MsgParam.p2  = orderStr;
            msg.MsgParam.p3  = PageSize.ToString();
            msg.MsgParam.p4  = PageIndex.ToString();
            msg.Data         = _coder.GetEncodingBytes(whereStr);
            _tcpcli.Send(msg);
        }
Beispiel #28
0
        void SendEmailToRoles(Session tcpclient, object data)
        {
            //    MsgStruts msg = data as MsgStruts;
            // string json=_coder.GetEncodingString(msg.Data,msg.Data.Length);
            GSSModel.Request.ClientData client = data as GSSModel.Request.ClientData;
            GSSModel.SendEmailToRole    email  = client.Data as GSSModel.SendEmailToRole;
            MsgStruts reback = new MsgStruts()
            {
                command = msgCommand.SendEmailToRoles
            };

            client.Message = "reback";
            client.Data    = null;
            reback.Data    = _coder.GetEncodBytes(client);
            _tcpsvr.Send(tcpclient, reback);
        }
        void AsyncCallback(IAsyncResult iar)
        {
            Socket      soc = iar.AsyncState as Socket;
            SocketError error;
            int         flag = soc.EndReceive(iar, out error);

            if (error != SocketError.Success)
            {
                return;
            }
            byte[] _recvDataBuffer = new byte[10240];
            soc.BeginReceive(_recvDataBuffer, 0, _recvDataBuffer.Length, SocketFlags.None, AsyncCallback, _recvDataBuffer);
            System.IO.MemoryStream msb = new System.IO.MemoryStream();
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bfb = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            msb.Write(_recvDataBuffer, 0, _recvDataBuffer.Length);
            msb.Position       = 0;
            SocketResponseData = (MsgStruts)bfb.Deserialize(msb);
        }
        /// <summary>
        /// 增加工单(发奖)
        /// </summary>
        /// <param name="task"></param>
        public string AddTaskSynGA(GSSModel.Tasks task, DataSet ds)
        {
            task.F_URInfo = DataSerialize.GetStringFromObject(DataSerialize.GetDataSetSurrogateZipBYtes(ds));

            MsgStruts msg = new MsgStruts();

            msg.command      = msgCommand.AddTask;
            msg.msgtype      = msgType.SendText;
            msg.msgsendstate = msgSendState.single;
            msg.MsgParam.p0  = "AddTaskGA";
            msg.Data         = DataSerialize.GetByteFromObject(task);


            MsgStruts msgb    = _tcpcli.SendAndBack(msg);
            string    backStr = _coder.GetEncodingString(msgb.Data, msgb.Data.Length);

            return(backStr);
        }