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