阅读the documentation,它表示当套接字关闭时,NetworkStream.Read会抛出IOException。
然而,根据this answer和我自己的实验,当另一边关闭套接字时,Read实际返回0.
现在,您可以说,文档说"如果没有可用于读取的数据,则Read方法返回0。"。好吧,这似乎不是真的,因为当没有数据时,Read方法就会阻塞。
所以我的问题是:
关于NetworkStream和以下三种情况......什么时候
1)阻止?
2)它返回0个字节?
3)它抛出IOException?
注意:请不要说"阅读其他答案"。其他答案(和文档)令人困惑且不清楚,因此这个问题的目标是澄清这三种情况之间的差异。