NetworkStream Чтение, когда сервер закрыт - PullRequest
0 голосов
/ 09 мая 2018

Чтение документации , это говорит о том, что NetworkStream.Read генерирует IOException, когда сокет закрыт.

Однако, согласно этому ответу и моим собственным экспериментам, когда другая сторона закрывает сокет, Read фактически возвращает 0.

Теперь можно сказать, что в документации сказано: «Если данные для чтения недоступны, метод Read возвращает 0.». Что ж, похоже, это не так, потому что когда нет данных, метод Read просто блокируется.

Итак, мой вопрос:

Относительно NetworkStream и следующих трех сценариев ... Когда это

1) это блок?

2) возвращает 0 байтов?

3) выдает IOException?

ПРИМЕЧАНИЕ. Пожалуйста, не говорите «прочитайте другие ответы». Другие ответы ( и документация) сбивают с толку и неясны, поэтому цель этого вопроса - уточнить различия между этими тремя случаями.

...