我使用围绕构建的网络协议TcpClient
,BinaryReader
用于从底层读取字节NetworkStream
(相反,BinaryWriter
用于写入)。
该协议以UTF-8编码传输字符串,并正在调用reader.ReadString()
以从流中读取它们(writer.Write(someStr)
用于写入)。
是否有一种简单的方法来确定从NetworkStream读取(或写入)的字节数,而不必跳过箍来计算所传输字符串的实际字节长度?
请注意,BinaryWriter.Write()
在字符串的实际字节之前写入一个7位编码的整数,这会使任何手动计算变得更加复杂。
另请注意,NetworkStream
该Position
属性不支持该属性,因为它抱怨无法使用Seek
。
此外,我想避免将必须复制/扫描数据的中介引入到读/写过程中,以免影响整个系统的性能。
是否有一种简单,高级的方法来计数通过网络接口传递的字节,而无需手动考虑字符串的编码和长度?