public string ReadStringSmart() { StringBuilder res = new StringBuilder(); while (true) { if (res.Length > 100) return ""; string part = _encoding.GetString(ReadInternal(1)); if (part == "\0") return res.ToString(); else res.Append(part); } }