public Int32 ReadLength()
        {
            var lenBuf = new Byte[4];

            _socket.ReadAll(lenBuf, 0, lenBuf.Length);
            return(EncodingUtils.decodeBigEndian(lenBuf));
        }
        public Sasl_Msg Recv_Sasl_Msg()
        {
            var result = new Sasl_Msg();

            _socket.ReadAll(_MessageHeader, 0, _MessageHeader.Length);
            result.Status = (SaslStatus)(statusBytes.IndexOf(_MessageHeader[0]) + 1);
            var body = new Byte[EncodingUtils.decodeBigEndian(_MessageHeader, STATUS_BYTES)];

            _socket.ReadAll(body, 0, body.Length);

            result.Body = Encoding.UTF8.GetString(body);
            return(result);
        }