Лучший способ иметь автономный HTTP-сервер на базе Perl, который также управляет TCP-соединениями - PullRequest
0 голосов
/ 05 августа 2010

Я пишу небольшой инструмент для склеивания, чтобы провести некоторое тестирование, и я бы хотел использовать CPAN. Мой инструмент должен действовать как HTTP-сервер, чтобы связывать опубликованные данные с другими TCP-соединениями и наоборот.

Я запустил инструмент, используя IO :: Event , который работал очень хорошо для меня. Я хотел бы интегрировать его с чем-то вроде HTTP :: Server :: Simple , чтобы выполнять разбор HTTP для меня, а не разбираться с разбором заголовков HTTP самостоятельно Быстрое прочтение HTTP :: Server :: Simple не показалось, что он может работать, но, возможно, я что-то упустил.

Кто-нибудь делал что-то подобное?

1 Ответ

1 голос
/ 05 августа 2010

После поиска CPAN я обнаружил модуль: HTTP :: Parser .Похоже, он делает именно то, что я хочу.

Объединение IO :: Event и HTTP :: Parser делает очень простое приложение для выполнения именно того, что я хочу, с минимальным суетой.1007 * Обновление: Следует отметить, что IO :: Event по умолчанию не очень хорошо обрабатывает двоичные данные.Он пытается использовать буферизованный ввод-вывод perl, который попытается доставить данные в соответствии с разделителем записей.Вы можете обойти это, установив '$ client-> autoread (0);'.После того, как вы это сделаете, вы должны использовать события ie_read_ready () и выполнить явный вызов recv, чтобы получить данные из основного дескриптора файла.Чтобы отправить данные, сделайте вызов 'send' для базового дескриптора файла.Это хорошо сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...