В ином случае он возвращает значение undef и устанавливает в переменной $! код ошибки. Здесь параметр $flags имеет тот же смысл, что и во встроенной функции, и по умолчанию принимается равным 0, если он не указан.
Метод send () отправляет через сокет содержимое переменной $data и возвращает число байтов, успешно поставленных в очередь Параметры $flags и $dest_addr имеют тот же смысл, что и во встроенной функции send (). Параметр $flags является необязательным и, если он не указан, принимается по умолчанию равным 0. Для подключенных сокетов параметр $dest_addr не должен использоваться.
Для удобства предусмотрено следующее. Если неподключенный сокет уже использовался для отправки пакета и параметр $dest_addr явно не указан, то в объекте сокета по умолчанию в качестве адреса назначения для метода send () будет применяться адрес, указанный в предыдущем вызове этого, метода.
Разработка клиента службы времени с использованием метода IO::Socket
Ниже показана общая схема использования объектно-ориентированных средств работы с протоколом UDP на примере клиента службы времени, основанного на применении модуля IO::Socket. Кроме того, в этом примере показано, как выполнить в клиентской программе подключение сокета UDP для повышения удобства использования метода send (). Проведем анализ программы.
Строки 1-7. Подготовка сценария к работе. Загружается модуль IO::Socket; вызываются применяемые по умолчанию константы сокета и константы с обозначениями конца строки.