示例#1
0
        private void ProcessData(string str, UserSession us)
        {
            if (UData.IsValidXml(str))
            {
                DataTable dt = UData.LoadDataTable(UData.LoadXsdText(str), str);

                Kv kv = new Kv(dt);

                Ap.MsgQueue.Enqueue(kv);
            }
        }
示例#2
0
        //public DataSet SendSync(string data)
        public DataSet SendSync(string data)
        {
            try
            {
                if (SynSocket != null)
                {
                    if (SynSocket.Connected)
                    {
                        SyncData = new StringBuilder();
                        int i = SynSocket.Receive(SyncBuffer);

                        while (true)
                        {
                            SyncData.Append(System.Text.ASCIIEncoding.ASCII.GetString(SyncBuffer, 0, i));

                            if (!SyncData.ToString().Contains("\0"))
                            {
                                i = SynSocket.Receive(SyncBuffer);
                            }
                            else
                            {
                                break;
                            }
                        }

                        if (UData.IsValidXml(SyncData.ToString()))
                        {
                            return(UData.LoadDataSet(SyncData.ToString()));
                        }
                        else
                        {
                            DataSet ds = new DataSet();
                            return(ds);
                        }
                    }
                    else
                    {
                        return(new DataSet());
                    }
                }
                else
                {
                    return(new DataSet());
                }
            }
            catch (Exception ex)
            {
                return(new DataSet());
            }
        }
示例#3
0
        private DataSet SyncDataRecive()
        {
            try
            {
                userSession.SyncData = new StringBuilder();

                int i = userSession.SynSocket.Receive(userSession.SyncBuffer);

                while (true)
                {
                    string Unzipdata = UZip.Unzip(System.Text.ASCIIEncoding.ASCII.GetString(userSession.SyncBuffer, 0, i));
                    userSession.SyncData.Append(Unzipdata);

                    if (!userSession.SyncData.ToString().Contains("\0"))
                    {
                        i = userSession.SynSocket.Receive(userSession.SyncBuffer);
                    }
                    else
                    {
                        break;
                    }
                }

                if (UData.IsValidXml(userSession.SyncData.ToString()))
                {
                    return(UData.LoadDataSet(userSession.SyncData.ToString()));
                }
                else
                {
                    DataSet ds = new DataSet();
                    return(ds);
                }
            }
            catch (Exception ex)
            {
                OnServerDownError(ex);

                return(new DataSet());
            }
        }
示例#4
0
        private StringBuilder FilterData(UserSession us)
        {
            string[] strs = UStr.Split(us.AsyncData.ToString(), "\0", StringSplitOptions.RemoveEmptyEntries);

            string str = "";
            int    i   = 0;

            us.AsyncData = new StringBuilder();
            bool isValid = true;

            if (strs.Length > 0)
            {
                str = strs[strs.Length - 1];
                if (!UData.IsValidXml(str))
                {
                    us.AsyncData.Append(str);
                    isValid = false;
                }

                if (isValid)
                {
                    for (i = 0; i < strs.Length; i++)
                    {
                        str = strs[i];
                        ProcessData(str, us);
                    }
                }
                else
                {
                    for (i = 0; i < strs.Length - 1; i++)
                    {
                        str = strs[i];
                        ProcessData(str, us);
                    }
                }
            }

            return(us.AsyncData);
        }