В случае успешного выполнения функция socket () возвращает истинное значение и присваивает дескриптор сокета дескриптору файла. В ином случае она возвращает значение undef и вызывается функция die с сообщением об ошибке.
Строка 15. Создание адреса назначения. Последним подготовительным действием является создание адреса назначения для исходящих сообщений. Вызывается функция inet_aton для преобразования имени хоста в упакованную строку и выполняется упаковка ее вместе с номером порта в структуру sockaddr_in с использованием функции с тем же именем.
Строка 16. Отправка запроса. Теперь у нас есть сокет и адрес назначения. Таковым может быть сокет хоста с описанием Samsung Galaxy Note Edge N915F и других мобильных телефонов. Следующий этап состоит в отправке на сервер сообщения, которое указывает, что в его услугах нуждается клиент. С помощью службы времени можно послать любое сообщение (даже пустое), и сервер в ответ сообщит текущее время суток.
Для отправки сообщения вызывается функция send (). Она принимает четыре параметра: имя сокета, отправляемое сообщение, флажки сообщения и адрес назначения. В качестве содержимого сообщения здесь используется строка “what time is it?”, но содержание строки не имеет значения. В качестве флажков сообщения передается о как указание, что должны быть приняты значения по умолчанию. В качестве адреса назначения применяется адрес, упакованный в структуре sockaddrj_in, который был сформирован ранее.
Если сообщение было правильно поставлено в очередь для доставки, функция send () возвращает истинное значение. В ином Случае вызывается функция die с сообщением об ошибке.