我正在使用BinaryReader来读取网络数据,其基于NetworkStream。这对我非常有效,但我想了解底层的工作原理,所以我查看了BinaryReader的文档,并发现它非常简略。
我的问题是:当我调用ReadBytes时,如果网络流中不存在bufferSize
字节,BinaryReader.ReadBytes(bufferSize)
会发生什么?
在我看来,有几个选项:
1) 读取网络流中存在的任何字节,并返回此数量
2) 等待直到网络流中存在bufferSize
字节,然后再读取
3) 抛出异常
我假设选项2会发生,因为我从未收到过任何异常,并且我接收到的所有数据都是完整的,而不是分段的。但是,我想确定到底发生了什么。如果有人能帮助我澄清疑问,我将不胜感激。