Метод timeout() позволяет определить или установить значение тайм-аута, которое используется модулем IO::Socket для методов connect() и accept(). При вызове с числовым параметром данный метод устанавливает значение тайм-аута и возвращает значение новой установки. В ином случае он возвращает текущую установку. В настоящее время значение тайм-аута не используется для вызовов, которые предусматривают отправку или прием данных. Для достижения требуемых результатов может применяться способ с использованием оператора eval().
Эти методы являются внешним интерфейсом к функциям send() и recv(). Интересный побочный эффект такой реализации тайм-аута состоит в том, что после установки выдержки времени в объектах модуля IO::Socket::INET появляется возможность прервать выполнение вызовов connect() и accept() с помощью сигналов. Это позволяет с помощью обработчика сигнала корректно завершить программу, которая зависла, ожидая выполнения вызова connect() или accept().
Дополнительные практические примеры. Теперь рассмотрим дополнительные примеры, которые иллюстрируют важные подробности API-интерфейса IO::Socket. Первым примером является доработанная и улучшенная версия программы инвертирующего эхо-сервера. Этим примером служит простой Web-клиент.