繁体   English   中英

从传入的NetworkStream中转储数据?

[英]Dumping data from incoming NetworkStream?

有没有办法以某种方式从传入的NetworkStream中跳过/转储X字节的数据? 你不能Seek它或Position它,如此看来唯一的办法是将它复制到其他流或只是读它,之后倒掉。

目前,我正在使用ReadAsync()方法读取流。

不,您必须读取NetworkStream所有数据。 如果需要跳过数据,则可以读取和忽略它,但是在继续前进之前必须先阅读它。 这是因为NetworkStream正在抽象一个TCP套接字数据流-TCP中没有任何内容表明要跳过字节-这只是二进制数据的源泉。 TCP之上的协议(例如FTP或HTTP)可能会实现一些概念,这些概念使您可以在文件或对象中定位,但是NetworkStream并不了解所有这些信息-只是让您获得套接字数据。

如果您需要Stream来抽象搜索功能,以便将其传递给需要可搜索流的代码,则可以构建自己的Stream类,该类包装实现Seek和or Position NetworkStream 当然,它必须在表格下读取并忽略您使用“ Seek或“ Position绕过的部分; 除非您对其进行缓冲,否则将无法向后实现“ Seek或“ Position

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM