NetworkStream在服务器关闭时读取

时间:2018-05-09 02:27:20

标签: c# networkstream

阅读the documentation,它表示当套接字关闭时,NetworkStream.Read会抛出IOException。

然而,根据this answer和我自己的实验,当另一边关闭套接字时,Read实际返回0.

现在,您可以说,文档说"如果没有可用于读取的数据,则Read方法返回0。"。好吧,这似乎不是真的,因为当没有数据时,Read方法就会阻塞。

所以我的问题是:

关于NetworkStream和以下三种情况......什么时候

1)阻止?

2)它返回0个字节?

3)它抛出IOException?

注意:请不要说"阅读其他答案"。其他答案(文档)令人困惑且不清楚,因此这个问题的目标是澄清这三种情况之间的差异。

0 个答案:

没有答案