Пример #1
0
        void Parent_GetArgs(object sender, Communicate.Base.Base.ReciveArgs reciveArgs)
        {
            lock (lockObject)
            {
                Communicate.Communicate parent = (Communicate.Communicate)sender;
                int    len = parent.DataRecive;
                byte[] buff;
                if (len > 0 && this.Read <byte[]>(len, out buff))
                {
                    SSMeter.SSReadMeter.ReadDataStyle   rs = SSMeter.SSReadMeter.ReadDataStyle.Parse(buff);
                    SSMeter.SSReadMeter.ReadResultStyle rr = new SSMeter.SSReadMeter.ReadResultStyle(Class.TypeUse.TypeList.Int, rs.Random, true, null);
                    if (rs == null)
                    {
                        All.Class.Error.Add("SSLockClient.Loop无校验或校验不通过");
                        return;
                    }
                    if (!rs.Symbol.ContainsKey("GUID"))
                    {
                        All.Class.Error.Add("SSLockMain接收的字符串没有GUID识别码");
                        return;
                    }
                    if (!Queue.Contain(rs.Symbol["GUID"]))
                    {
                        allClientReturnStatue.Add(rs.Symbol["GUID"], ReturnStatueList.无请求);
                        allClientRequestStatue.Add(rs.Symbol["GUID"], SSLockClient.SetStatueList.无动作);
                        Queue.Init(0, rs.Symbol["GUID"]);
                    }
                    if (!rs.Symbol.ContainsKey("Code"))
                    {
                        All.Class.Error.Add("SSLockMain接收的字符串没有Code命令码");
                        return;
                    }

                    allClientRequestStatue[rs.Symbol["GUID"]] = (SSLockClient.SetStatueList)rs.Symbol["Code"].ToInt();

                    rr.Result = true;
                    rr.Value  = new List <int>()
                    {
                        (int)allClientReturnStatue[rs.Symbol["GUID"]]
                    };
                    Dictionary <string, string> parm = new Dictionary <string, string>();
                    parm.Add("RemotIP", reciveArgs.RemotIP);
                    parm.Add("RemotPort", reciveArgs.RemotPort.ToString());
                    parent.Send <byte[]>(rr.GetBytes <int>(), parm);
                }
            }
        }