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 })); }
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); }
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)); }
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); }
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); }
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[] { })); }
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)); }
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())); } }
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)); }
//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); }
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)); }
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)); }
public override IotRequest ResolvePackage(IBufferStream bufferStream) { return(new IotRequest(bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8))); }
public override StringPackageInfo ResolvePackage(IBufferStream bufferStream) { var str = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8); return(new StringPackageInfo("", str, null)); }
public override StringPackageInfo ResolvePackage(IBufferStream bufferStream) { var a = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8); return(new StringPackageInfo(a, new BasicStringParser())); }
public override StringPackageInfo ResolvePackage(IBufferStream bufferStream) { string str = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8); return(new StringPackageInfo(str, str, str.Split(' '))); }