Если качество соединения является просто превосходным, то может оказаться, что все содержимое файла промелькнет на экране и после эхо-повтора последней строки снова появится приглашение к вводу команд. Однако, вероятнее всего, программа выведет часть текстового файла, а затем зависнет на неопределенное время.
Подобные моменты могут возникнуть, если между хостами представляющими, к примеру, сервис по онлайн заказу билетов в театр используется протокол UDP. При этом пользователь на сервере клиента хочет заказать билеты в Большой театр и отравляет форму на сервер обработчика. И если не предусмотрена проверка доставки пакета, то может возникнуть стоповая ситуация.
Что же произошло?
Помните, что UDP — ненадежный протокол. Любая дейтаграмма, отправленная на удаленный сервер, может не достичь своего места назначения, и любая дейтаграмма, возвращенная с сервера на локальный хост, может раствориться в эфире. Если удаленный сервер очень загружен, он может оказаться не в состоянии обрабатывать поток входящих пакетов, в результате чего появятся ошибки переполнения буфера.
В приведенном выше клиенте эхо-сервера это не принято во внимание. Для отправки сообщения с помощью метода send () в нем просто вызывается метод recv () в полной уверенности, что ответ на сообщение придет. Но если ответ не поступает, вызов метода блокируется на неопределенное время, что приводит к зависанию сценария.
Это — еще один пример тупиковой ситуации. Клиент не получит сообщения сервера, пока не отправит ему сообщение для эхо-повтора, но он не может этого сделать, поскольку ждет сообщение от сервера.