Для корректировки сценария инвертирующего эхо-сервера, представленного ранее достаточно внести простейшие изменения. Здесь строка 19 заменена несколькими строками кода, которые предусматривают проверку соблюдения в сообщениях формата “порядковый номер/тело сообщения” и выдачу правильно отформатированного ответа.
Для обеспечения обратной совместимости сообщения, не имеющие правильного формата, просто переставляются в обратном порядке, как и прежде. Еще один вариант может состоять в уничтожении сервером нераспознанных сообщений.
Наиболее интересные изменения внесены в клиентскую программу, получившую на звание udp_echo_cli3.pl. В данном случае применяется хеш %PENDING для регистрации каждого отправленного запроса. Ключами хеша служат порядковые номера исходящих запросов, под которыми хранятся и копии первоначальных запросов, и счетчики, позволяющие следить за числом отправленных запросов.
Глобальная переменная $seqout увеличивается на единицу при выработке каждой го нового запроса, a $seqin контролирует порядковый номер последнего ответа, подученного с сервера, чтобы можно было обнаруживать непоследовательно поступающие ответы.
Необходимо отказаться от принципа “отправить запрос и ждать ответа”, который применялся в предыдущих клиентах UDP; предположим, что время поступления ответов с сервера является непредсказуемым. В этом случае для создания программы нужно применить функцию select () с тайм-аутом для мультиплексирования операций ввода-вывода, выполняемых в дескрипторе STDIN и сокете.
2015-04-05 13:07:43
это интересно Стремление людей всегда быть загорелыми создает определенный спрос на солярии. Именно они позволяют человеку быть круглогодично загорелым. Купить солярий можно на сайте kupit-solyariy.ru , где также представлены статьи и рекомендации по выбору и использованию продукта. И главное при приеме солярных ванн не злоупотреблять длительностью, а при необходимости проконсультироваться у врача.