public void Send_Sasl_Msg(SaslStatus status, Byte[] body)
 {
     _MessageHeader[0] = statusBytes[(Int32)status - 1];
     EncodingUtils.encodeBigEndian(body.Length, _MessageHeader, STATUS_BYTES);
     _socket.Write(_MessageHeader);
     _socket.Write(body);
     _socket.Flush();
 }
        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);
        }