using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Chop { public class RequestParser { private short _headerID; private byte[] _content; public short reader; public short HeaderID { get { return _headerID; } } //public string Content { get { return mContent; } set { mContent = value; } } //public string GetRestContent { get { return mContent.Substring(reader); } } public static RequestParser Parse(byte[] data) { RequestParser request = new RequestParser(); request._content = data; request._headerID = request.ReadInt16(); return request; } public int ReadInt32() { int i = BitConverter.ToInt32(new byte[] { _content[reader + 3], _content[reader + 2], _content[reader + 1], _content[reader] }, 0); reader += 4; return i; } public short ReadInt16() { short s = BitConverter.ToInt16(new byte[] { _content[reader + 1], _content[reader] }, 0); reader += 2; return s; } public bool ReadBoolean() { return BitConverter.ToBoolean(_content, reader++); } public string ReadString() { short length = ReadInt16(); string s = Encoding.Default.GetString(_content, reader, length); reader += length; return s; } } }