Ejemplo n.º 1
0
            public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
            {
                var total = (int)bufferStream.Length;
                var key   = bufferStream.ReadString(4, Encoding.ASCII);

                bufferStream.Skip(4); // skip length part
                var body = bufferStream.ReadString(total - HeaderSize, Encoding.ASCII);

                return(new StringPackageInfo(key, body, new string[] { body }));
            }
Ejemplo n.º 2
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            //throw new NotImplementedException();
            string key = bufferStream.ReadString(FixedHeaderTryConst.KEYSIZE, Encoding.UTF8);

            byte[] buffer = new byte[FixedHeaderTryConst.BODYSIZE_LEN];
            bufferStream.Read(buffer, 0, FixedHeaderTryConst.BODYSIZE_LEN);
            int    bodySize = PackageBodyOperator.GetBodyLen(buffer);
            string body     = bufferStream.ReadString(bodySize, Encoding.UTF8);

            return(new StringPackageInfo(key, body, null));
        }
            public override Packet ResolvePackage(IBufferStream bufferStream)
            {
                if (bufferStream.Length > Int32.MaxValue)
                {
                    throw new ArgumentOutOfRangeException("Param too long");                                       // should never happen
                }
                string all = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);
                Packet p   = new Packet();

                if (all[0] == 'B')
                {
                    p.broadcast = true;
                }
                else if (all[0] == 'M')
                {
                    p.broadcast = false;
                }
                else
                {
                    return(null);
                }
                int i = all.IndexOf(' ');

                if (i == -1)
                {
                    return(null);
                }
                else
                {
                    p.sender  = all.Substring(1, i - 1);
                    p.message = all.Substring(i + 1, all.Length - i - 3);
                }
                return(p);
            }
        public override EventPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            //log4j.Debug("bufferStream.Length: " + bufferStream.Length);
            //log4j.Debug("headerSize: " + this.HeaderSize);
            //log4j.Debug("bodySize: " + ((int)bufferStream.Length - this.HeaderSize));
            //int key1 = bufferStream.Skip(4).ReadByte();
            //int key2 = bufferStream.ReadByte();
            //int key = key2 << 8 | key1;
            //int subKey1 = bufferStream.ReadByte();
            //int subKey2 = bufferStream.ReadByte();
            //int subKey = subKey2 << 8 | subKey1;
            EventPackageInfo ev = new EventPackageInfo(0, 0, "");

            try
            {
                int key    = bufferStream.Skip(4).ReadUInt16(true); // why read little indian??
                int subKey = bufferStream.ReadUInt16(true);

                //log4j.Debug(string.Format("key: {0}, subKey: {1}", key, subKey));

                string body = bufferStream.ReadString((int)bufferStream.Length - this.HeaderSize, Encoding.UTF8);
                ev = new EventPackageInfo(key, subKey, body);
            }
            catch (Exception ex)
            {
                log4j.Error("ResolvePackage: ", ex);
            }
            return(ev);
        }
Ejemplo n.º 5
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string source = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);

            //return new StringPackageInfo(source, BasicStringParser.DefaultInstance);
            return(new StringPackageInfo(source, StringParser.DefaultInstance));
        }
            public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
            {
                var line = bufferStream.ReadString((int)bufferStream.Length, Encoding.ASCII);
                var arr  = line.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries);

                return(new StringPackageInfo(arr[0], arr[1], new string[] { arr[1] }));
            }
        /// <summary>
        /// Resolves the package.
        /// </summary>
        /// <param name="bufferStream">The received buffer stream.</param>
        /// <returns></returns>
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var encoding = m_Encoding;
            var totalLen = (int)bufferStream.Length - SearchState.Mark.Length;

            return(new StringPackageInfo(bufferStream.ReadString(totalLen, encoding), m_StringParser));
        }
Ejemplo n.º 8
0
        public override BufferedPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var key = bufferStream.ReadString(4, Encoding.UTF8);

            bufferStream.Skip(2);
            return(new BufferedPackageInfo(key, bufferStream.Take((int)bufferStream.Length - 6)));
        }
        public override DataPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var length       = Convert.ToInt32(bufferStream.Length);
            var code         = bufferStream.ReadString(length, Encoding.ASCII);
            var responseInfo = new DataPackageInfo(code);

            return(responseInfo);
        }
Ejemplo n.º 10
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            long   len     = bufferStream.Length;
            string StrRecv = bufferStream.ReadString((int)len, Encoding.ASCII);

            OnPackageReceived?.Invoke(this, StrRecv);
            bufferStream.Clear();
            return(null);
        }
Ejemplo n.º 11
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            //获取接收到的完整数据,包括头和尾
            var body = bufferStream.ReadString((int)bufferStream.Length, Encoding.ASCII);

            //掐头去尾,只返回中间的数据
            body = body.Remove(body.Length - end.Length, end.Length);
            body = body.Remove(0, begin.Length);
            return(new StringPackageInfo("", body, new string[] { }));
        }
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            //throw new NotImplementedException();
            //获取接收到的完整数据,包括头和尾
            var body = bufferStream.ReadString((int)bufferStream.Length, Encoding.ASCII);

            //去掉屁股的终止符
            body = body.Remove(body.Length - end.Length, end.Length);
            return(new StringPackageInfo("", body, new string[] { }));
        }
Ejemplo n.º 13
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string body = bufferStream.ReadString((int)bufferStream.Length, Encoding.ASCII);

            body = body.Replace("\r\n", "");
            string[] entities = body.Split();
            string   key      = entities[0];

            return(new StringPackageInfo(key, body, entities));
        }
        public override DataPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var length = Convert.ToInt32(bufferStream.Length);

            var code         = bufferStream.ReadString(length, Encoding.ASCII);
            var responseInfo = new DataPackageInfo(code.Substring(0, length - 1));

            NextReceiveFilter = _switchFilter;
            return(responseInfo);
        }
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var total           = (int)bufferStream.Length;
            var chunksizeString = bufferStream.ReadString(total - 2, Encoding.ASCII);

            string[] stringArray = chunksizeString.Split(' ');
            string[] parameters  = stringArray.Skip(1).ToArray();
            string   body        = string.Join(" ", parameters);

            return(new StringPackageInfo(stringArray.First(), body, parameters));
        }
Ejemplo n.º 16
0
 public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
 {
     try
     {
         var rstr = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);
         return(new StringPackageInfo(rstr, new BasicStringParser()));
     }
     catch (Exception)
     {
         return(new StringPackageInfo(string.Empty, new BasicStringParser()));
     }
 }
Ejemplo n.º 17
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string cmdFullText = string.Empty;
            string key         = string.Empty;
            string body        = string.Empty;

            string[] parameters = null;
            cmdFullText = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);
            key         = Regex.Split(cmdFullText, "\u0020")[0];
            body        = string.Join("", cmdFullText.ToArray().Skip(key.ToArray().Length + 1).ToList());
            return(new StringPackageInfo(key, body, parameters));
        }
        public override PackageInfo <string, byte[]> ResolvePackage(IBufferStream bufferStream)
        {
            string key = bufferStream.ReadString(4, Encoding.UTF8);

            if (bufferStream.Length > 4)
            {
                byte[] body = new byte[bufferStream.Length - 4];
                bufferStream.Skip(4).Read(body, 4, body.Length);
                return(new PackageInfo <string, byte[]>(key, body));
            }

            return(new PackageInfo <string, byte[]>(key, null));
        }
Ejemplo n.º 19
0
        //StringPackageInfo
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            //var line = Encoding.ASCII.GetString(bufferStream.Buffers[0].Array, 0, bufferStream.Buffers[0].Count);
            var line = bufferStream.ReadString(int.Parse(bufferStream.Length.ToString()), Encoding.UTF8);

            BasicStringParser m_Parser = new BasicStringParser(";", ",");

            //BasicStringParser m_Parser = new BasicStringParser("@", ",");


            //StringPackageInfo si = new StringPackageInfo(line.ToString(), m_Parser);
            StringPackageInfo si = new StringPackageInfo(line.Substring(7, line.Length - 15), m_Parser);

            return(si);
        }
        public override HttpPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var numLen    = (int)(bufferStream.Length - 2);
            var chunkSize = 0;

            var chunksizeString = bufferStream.ReadString(numLen, Encoding.ASCII);

            Console.WriteLine("ChunkSizeStr:" + chunksizeString);
            chunkSize = Convert.ToInt32(chunksizeString, 16);

            Console.WriteLine($"ChunkSize: {chunkSize}");
            bufferStream.Buffers.Clear();
            NextReceiveFilter = new HttpChunkDataReceiveFilter(this, chunkSize + 2);
            return(null);
        }
Ejemplo n.º 21
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string cmdFullText = string.Empty;
            string key         = string.Empty;
            string body        = string.Empty;

            string[] parameters = null;
            cmdFullText = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);
            //1.不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;
            //2.半角空格(英文符号)\u0020,代码中常用的;
            //3.全角空格(中文符号)\u3000,中文文章中使用;
            key  = Regex.Split(cmdFullText, "\u0020")[0];
            body = string.Join("", cmdFullText.ToArray().Skip(key.ToArray().Length + 1).ToList());
            return(new StringPackageInfo(key, body, parameters));
        }
        public override DefaultPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string content = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);

            if (content.IndexOf(terminator) > -1)
            {
                content = content.Substring(0, content.IndexOf(terminator));
            }

            string key  = content.Substring(0, content.IndexOf(" "));
            string body = content.Substring(content.IndexOf(" "));


            return(new DefaultPackageInfo(key, body));
        }
        public override TPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            int            num        = (int)bufferStream.Length;
            string         headerData = bufferStream.ReadString(num, HeaderEncoding);
            HttpHeaderInfo header     = new HttpHeaderInfo();

            MimeHeaderHelper.ParseHttpHeader(headerData, header);
            IReceiveFilter <TPackageInfo> bodyReceiveFilter = GetBodyReceiveFilter(header, num);

            if (bodyReceiveFilter != null)
            {
                base.NextReceiveFilter = bodyReceiveFilter;
                bufferStream.Clear();
                return(default(TPackageInfo));
            }
            return(ResolveHttpPackageWithoutBody(header));
        }
            public override HttpPackageInfo ResolvePackage(IBufferStream bufferStream)
            {
                var realChunkSize = this.Size - 2;

                if (realChunkSize == 0)
                {
                    // last chunk
                    var body = m_ParentFilter.m_BodyBuilder.ToString();
                    return(new HttpPackageInfo("Test", m_ParentFilter.m_HttpHeader, body));
                }

                m_ParentFilter.m_BodyBuilder.Append(bufferStream.ReadString(realChunkSize, Encoding.UTF8));
                Console.WriteLine("Part:" + m_ParentFilter.m_BodyBuilder.ToString());
                NextReceiveFilter = m_ParentFilter;
                bufferStream.Buffers.Clear();

                return(null);
            }
        /// <summary>
        /// Resolves the package binary data to package instance
        /// </summary>
        /// <param name="bufferStream">The received buffer stream.</param>
        /// <returns>the resolved package instance</returns>
        public override TPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var length = (int)bufferStream.Length;

            string headerData = bufferStream.ReadString(length, HeaderEncoding);

            var header = new HttpHeaderInfo();

            MimeHeaderHelper.ParseHttpHeader(headerData, header);

            var nextReceiveFilter = GetBodyReceiveFilter(header, length);

            if (nextReceiveFilter != null)
            {
                NextReceiveFilter = nextReceiveFilter;
                return(default(TPackageInfo));
            }

            return(ResolveHttpPackageWithoutBody(header));
        }
Ejemplo n.º 26
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string cmdFullText = string.Empty;
            string key         = string.Empty;
            string body        = string.Empty;

            string[] parameters = null;
            cmdFullText = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);
            cmdFullText = Regex.Split(cmdFullText, "\r\n")[0];

            int pos = cmdFullText.IndexOf(Constant.START_SPLIT);

            if (pos <= 0)
            {
                return(null);
            }

            body = cmdFullText.Substring(pos + 1);
            key  = cmdFullText.Substring(0, pos);
            return(new StringPackageInfo(key, body, parameters));
        }
Ejemplo n.º 27
0
 public override IotRequest ResolvePackage(IBufferStream bufferStream)
 {
     return(new IotRequest(bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8)));
 }
Ejemplo n.º 28
0
            public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
            {
                var str = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);

                return(new StringPackageInfo("", str, null));
            }
Ejemplo n.º 29
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            var a = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);

            return(new StringPackageInfo(a, new BasicStringParser()));
        }
Ejemplo n.º 30
0
        public override StringPackageInfo ResolvePackage(IBufferStream bufferStream)
        {
            string str = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8);

            return(new StringPackageInfo(str, str, str.Split(' ')));
        }