В блоке создается локальный обработчик int, который выводит предупреждающее сообщение, устанавливает переменную $abort равной истинному значению и вызывает функцию die, что приводит к завершению блока eval { }. Поскольку этот обработчик объявлен как локальный, первоначальный обработчик int на время замещается локальным, а затем автоматически восстанавливается после выхода из блока eval {}. В самом блоке выполняется построчное чтение текстового файла и отправка его на сервер. После обнаружения признака конца файла на сервер в отдельной строке отправляется символ конца.
После выхода из цикла проверяется переменная $abort. Если она имеет истинное значение, то передача была прервана преждевременно, при нажатии пользователем клавиши прерывания. Необходимо сообщить об этом серверу, чтобы он игнорировал все необработанные данные, отправленные ему из этой клиентской программы. Эта задача выполняется путем отправки серверу одного байта срочных данных.
Последний этап состоит в чтении строки ответа, полученной от сёрвера, и выводе числа успешно обработанных уникальных слов.
Строки 61-67. Обработка команд reset и bye. Подпрограмма do_reset () отправляет на сервер команду reset и проверяет код результата. Подпрограмма do_bye( ) отправляет на сервер команду bye, но в этом случае не проверяет код результата, поскольку программа так или иначе должна завершить работу.
2015-02-15 18:38:36
это интересно Развитие микропроцессорной техники и информационных технологий дают большой толчок для модернизации смежных отраслей. Одной из таких сфер является связь, которая уже давно перешла на цифру и с каждым годом приятно удивляет нас своими новшествами. Одним из таких новаторских предложений является Манго офис – лидер виртуальных АТС на отечественном рынке с поддержкой унифицированной обработки обычных и SIP соединений.