Лабораторная работа 6. Сетевое программирование

Напишите программу, реализующую заданный сетевой сервис. Она должна уметь одновременно обслуживать большое количество клиентов. Используйте две технологии программирования асинхронных сетевых сервисов из списка (пары технологий у всех в группе должны быть разными; спросите преподавателя, не занята ли выбранная вами пара):

  1. C++ threads с блокирующими сокетами (скачать пример)
  2. C++ poll с неблокирующими сокетами (скачать пример)
  3. Ruby Celluloid (скачать пример)
  4. Python Twisted (скачать пример)
  5. Java Netty (скачать пример)
  6. Javascript Node.js (скачать пример)
  7. Php ReactPHP (скачать пример)
  8. golang (скачать пример)
  9. Другое (по согласованию с преподавателем)
Протестируйте ваши программы на большой нагрузке и запишите в отчет статистику: сколько максимально запросов в секунду смог обработать ваш сервис.
        Указанные технологии нужно применять только при написании программы-сервера. Программа-клиент должна быть максимально простой и быстрой (C++) для тестирования сервера под большой нагрузкой  (скачать пример клиента).
        Во всех заданиях клиенты подключаются к серверу, общаются продолжительное время: посылают запросы, получают ответы и отключаются. Реализуйте возможность конвейеризации запросов: отправки клиентом еще одного или нескольких запросов до получения ответа на предыдущий.

        Придумайте и опишите формат пересылаемых клиентами сообщений и ответов сервера на эти сообщения (т.е. протокол).

        Ваш вариант задания async_service.txt находится в вашей папке на сервере stud.mmcs.sfedu.ru.