Пример кода из MSDN для работы с TcpListener исправление

На этой странице приводится пример бесконечного прослушивания порта 13000 на локальной машине

Но это прослушивание не бесконечно, т.к. не сделан выход из цикла, при прочтении последних байт сообщения

Может правильно как-то иначе, но вот исправленный рабочий кусок кода (исправление выделено):


После этого код действительно работает именно так как ожидается :)

2 комментария:

  1. Условие выхода указано в while. Когда соединение закрывается, возвращается значение ноль, цикл завершится. С вашим новым условием возможно потерять часть данных..

    ОтветитьУдалить
    Ответы
    1. Спасибо за важное замечание. Я сейчас не уверен в том, что именно меня сподвигло на написание данной заметки, но смею предположить, что при закрытии стрима во время чтения мы можем свалиться с эксепшеном в stream.Read

      Удалить

Можете оставить свой комментарий