Адрес назначения можно не указывать, поскольку методом connect () был установлен применяемый по умолчанию. Затем вызывается метод recv () для получения ответа и вывода его на стандартное устройство вывода.
Строка 17. Закрытие сокета. После закрытия стандартного устройства вывода выполнение цикла завершается. Для закрытия сокета вызывается его метод close (). На примере был запущен эхо-сервер, описанный в предыдущем разделе, на компьютере brie.cshl.org и вызван на выполнение клиент на другом компьютере, был указан порт 1007, а не применяемый по умолчанию порт службы эхо-повтора.
Между тем, на компьютере сервера были выведены следующие сообщения.
% udp__echo_serv.pl
servicing incoming requests ....
Received 11 bytes from [brie.cshl.org,1048]
Received 10 bytes from [brie.cshl.org,1048]
Received 7 bytes from [brie.cshl.org,1048]
Если бы в тот же момент поступали запросы от других клиентов, например, с хоста http://p-business.ru , страницы которого описывают создание собственного бизнеса, сервер обрабатывал бы и их и выводил соответствующие сообщения о состоянии.
Повышение безотказности приложений UDP
Поскольку протокол UDP является ненадежным, проблемы при работе с ним возникают, когда их меньше всего ожидаешь. Хотя код клиента службы повтора, кажется понятным, он фактически содержит скрытую программную ошибку. Чтобы обнаружить ее, попытаемся указать клиенту адрес эхо-сервера, работающего на удаленном хосте UNIX где-то в Internet. Вместо ввода в этот клиент информации непосредственно из командной строки перенаправим в его стандартное устройство ввода большой текстовый файл, например /иsr/dict/words.