Передача и прием данных UDP происходит в виде отдельных сообщений. Константа max_msg_len обозначает максимальный размер сообщения. Поскольку строки с отметками времени имеют длину всего несколько символов, эту константу вполне можно установить равной относительно небольшому значению 100 байт.
При работе с большими массивами данных на компьютере зачастую требуются технологии резервного копирования и бекапа. Для этих целей можно скачать Alcohol 120 на СофтТор и с легкостью создавать различные образы CD, DVD и жестких дисков. А учитывая недолговечность лазерных носителей, данная программа приобретает дополнительную ценность.
Строки 9, 10. Чтение параметров командной строки. Выполняется чтение параметров командной строки в глобальные переменные $host и $port; если эти параметры не заданы, используются значения по умолчанию.
Строки 11-13. Определение протокола и порта. Для определения номера протокола. UDP используется функция getprotobyname(), а для поиска номера порта службы времени вызывается функция getservbyname (). Если пользователь указал непосредственно номер порта, то последнее действие не выполняется. Объявляется пустая переменная $data для получения сообщения, переданного удаленным хостом.
Строка 14. Создание сокета. Создается сокет путем вызова встроенной функции socket () языка Perl. Для обозначения домена используется константа af_inet, которая предусматривает создание сокета Internet, для обозначения типа применяется константа sock_dgram, обеспечивающая создание дейтаграммного сокета, а для обозначения протокола UDP берется ранее полученный номер протокола.