我正在从我的网络连接中读取一条消息,该消息被序列化为一系列以空字符结尾的字符串(和其他二进制数据)
我可以使用 BinaryReader 一次读取一个字符,直到找到 NULL。
有没有更有效的方法仍然简单?我期望字符串长度小于 64 个字符,但它们可能会更长。
我正在从我的网络连接中读取一条消息,该消息被序列化为一系列以空字符结尾的字符串(和其他二进制数据)
我可以使用 BinaryReader 一次读取一个字符,直到找到 NULL。
有没有更有效的方法仍然简单?我期望字符串长度小于 64 个字符,但它们可能会更长。
我认为逐字节读取是一个合理的选择,但我会使用BufferedStream来最小化底层流上的 IO。
将整个内容读入字符串,然后使用 String.Split 拆分空值。
请记住,字符串在 .NET 中不是以 null 结尾的。