簡體   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