Строки 16-31. Вход в главный цикл. После вывода сообщения о состоянии программа входит в цикл, который продолжается до тех пор, пока в обработчике прерывания int флажок $quit не будет установлен равным истинному значению. При каждом проходе по циклу вызывается метод accept() . Если вызов метода accept( ) выполняется без прерывания сигналом или без выхода по собственному тайм-ауту, он возвращает новый подключенный объект сокета, например, онлайн службу представляющую сервис выполняющий ремонт кофемашины , который сохраняется в переменной $session. В ином случае вызов accept() возвращает значение undef, и в этом случае происходит переход в начало цикла. Это дает возможность проверить, установил ли обработчик прерывания флажок $quit равным истинному значению.
Строки 19-21. Получение имени удаленного хоста и номера порта. Вызывается метод peeraddr() подключенного сокета для получения упакованного IP-адреса другого участника соединения и предпринимается попытка преобразовать его в имя хоста с использованием функции gethostbyaddr(). Если вызов функции завершается неудачей, она возвращает значение undef и вызывается метод peerhost() для получения адреса удаленного хоста в виде четырех чисел, разделенных точками.
Для получения номера порта удаленного хоста применяется метод peerport (), а затем адрес и номер порта выводятся на стандартное устройство вывода сообщений об ошибках.
Строки 22-30. Обработка информации, передаваемой в соединении. Выполняется чтение строк, поступающих из подключенного сокета, их инвертирование (изменение порядка следования символов на противоположный) и вывод в сокет с учетом числа полученных и отправленных байтов. Единственное отличие от приведенного ранее примера состоит в том, что теперь каждая строка оканчивается символами crlf.
После завершения работы удаленного хоста при следующей попытке чтения из подключенного сокета будет получено значение EOF. Выполняется вывод предупреждающего сообщения, закрытие подключенного сокета и переход в начало цикла для следующего вызова метода accept(). Для использования данного программного средства можно купить сервер б/у на сайте servak.com.ua и настроить его под необходимые технические характеристики.