void Parse() { _requestHeader = new BinaryRequestHeader(_rawData); this.State = ParserState.WaitingForData; ProcessHeader(); }
void ProcessHeader() { bool valid = true; if (_requestHeader.TotalBodyLenght < _requestHeader.KeyLength + _requestHeader.ExtraLength) valid = false; if (_requestHeader.MagicByte != Magic.Request) valid = false; if (!valid) { _requestHeader = new BinaryRequestHeader(); _requestHeader.Opcode = Opcode.Invalid_Command; this.State = ParserState.ReadyToDispatch; } if (_requestHeader.TotalBodyLenght == 0) this.Build(); }