Служба времени UDP является аналогичной, но действует немного иначе, поскольку это дейтаграммная служба. Сервер службы UDP ожидает не входящие запросы на установление соединения, а входящие дейтаграммы. Получив дейтаграмму, сервер проверяет адрес отправителя, а затем передает по этому адресу ответную дейтаграмму, которая может содержит отметку текущего времени и даты. Никакого соединения не требуется.
Клиент принимает до двух параметров командной строки — имя хоста службы времени, на который должен быть отправлен запрос, и номер порта, к которому должно быть выполнено подключение. По умолчанию программа пытается обратиться к серверу, работающему на локальном хосте, с использованием стандартного номера порта службы времени. Ниже приведен типичный пример сеанса.
% udp__daytime_cli.pl wuarchive.wustl.edu
Wed Aug 16 21:29:54 2000
Этот клиент не похож на программы TCP, с которыми мы уже знакомы. Рассмотрим код программы клиента.
Строки 1-5. Загрузка модулей. Выполнение сценария начинается с включения строгой проверки кода, а затем вызова стандартной библиотеки socket и ее констант с обозначением конца строки. Переменная $/ устанавливается равной crlf, не потому, что выполняются построчные операции чтения, а в связи с тем, что в конце сценария предусмотрен вызов функции chomp для корректного удаления заключительных символов CRLF.
Строки 6-8. Определение констант. Определены значения нескольких констант. Константа default_host обозначает имя хоста, к которому должно быть выполнено подключение, если он не указан в командной строке; в данном случае применяется адрес обратной связи “localhost”: Константа default_port определяет порт, по которому будет обращаться программа, если в командной строке не указано иное; это значение может представлять собой номер порта или символическое имя службы, в качестве имени службы применяется “daytime”.