private void WriteString(string value)
{
byte[] stringBytes = Encoding.ASCII.GetBytes(value);
uint length = (uint)value.Length;
// write string length
WriteInteger(length + 1);
// write string
_stream.Write(stringBytes, 0, (int)length);
// write end byte
_stream.WriteByte(0);
}