我正在使用围绕TcpClient构建的网络协议,使用BinaryReader从底层NetworkStream读取字节(相反,使用BinaryWriter写入).
该协议以UTF-8编码传输字符串,并调用reader.ReadString()从流中读取它们(使用writer.Write(someStr)写入).
有没有一种简单的方法可以确定从NetworkStream读取(或写入)的字节数,而无需跳过箍来计算传输的字符串的实际字节长度?
请注意,BinaryWriter.Write()在字符串的实际字节之前写入一个7位编码的整数,这使得任何手动计算更加复杂.
另请注意,NetworkStream不支持Position属性,因为它抱怨无法搜索.
此外,我想避免引入必须将数据复制/扫描到读/写过程中的中介,以免影响整个系统的性能.
是否有一种简单,高级的方法来计算通过网络接口的字节数,而无需手动计算字符串的编码和长度?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。