【发布时间】:2023-03-09 06:28:01
【问题描述】:
我想知道是否有任何方法或属性可以让我们查看与BinaryReader 关联的流中是否有可用字节可供读取(在我的情况下,它是 NetworkStream,因为我正在执行 TCP沟通)。
我已经检查了documentation,我看到的唯一方法是PeekChar(),但它只检查是否有下一个字节(字符),所以如果有很多字节要读取,制作一个while循环到增加一个计数器可能是无效的。
关于TCP通信,问题是TCP背后的应用协议不是我定义的,我只是想弄清楚它是如何工作的!当然会有一些“长度字段”会给我一些关于要读取的字节的线索,但我知道我只是在检查它是如何工作的,这个问题浮现在我脑海中。
【问题讨论】:
-
TCP 是一种流式协议...不确定您的意思,但
length与streaming的定义几乎相反。BinaryReader只是协议流的封装。 -
嗯...对不起,我不明白你的意思!
-
如果现在没有任何字节可用,你打算怎么做?这并不意味着没有更多的未来......
-
TCP 流的具体问题是,一旦您确定答案为“否”,或者有 20 个字节可用,这些答案可能不再准确。
-
这是一个不同的问题:使用非阻塞(或异步)读取。
标签: c# binaryreader