Ответы пользователя по тегу API
  • Как работать с сообщениями?

    ВНЕЗАПНО: Jabber?

    Это предложение для исследования, опыта работы не было. Есть очевидный плюс - не надо ничего дергать, если сможете огранизовать постоянное соединение, все само прилетит.
    Ответ написан
  • Как программно отфильтровать пакеты по pid/имени процесса?

    Nipheris
    @Nipheris Куратор тега C++
    Если pcap действительно не предоставляет никакой инфы о процессе, который забрал пакет (вполне вероятная и нормальная ситуация, т.к. работает он в режиме ядра), то попробуйте проставить соответствие по номеру порта, раз уж вам TCP нужен. С точки зрения сетевого протокола, именно порт уникально идентифицирует процесс-получатель и процесс-отправитель (например, вы ведь никак не повесите два независимых веб-сервера на одном порту. Также и при исходящем TCP подключении ОС выделяет для каждого подключения отдельный случайный порт). Т.к. информацию о портах и TCP-соединениях (в т.ч. в listening статусе) вы по идее сможете получить (ведь существует и как-то работает TcpView из пакета Sysinternals), то и по порту пакеты сможете привязать.
    Само собой, один процесс может открывать много портов на прослушку и устаналивать множество соединений, как входящих так и исходящих. Если вам нужно еще и отдельные TCP-стримы сохранять (например, к 80-му порту веб-сервера подключилось много клиентов), то тогда уникально идентифицируйте каждый коннект с помощью четверки: (source_ip, source_port, destination_ip, destination_port).
    Ответ написан
    3 комментария
  • Какой фреймворк на c/c++ выбрать для реализации REST API?

    Nipheris
    @Nipheris Куратор тега C++
    EDIT: на сегодняшний день рекомендую Boost.Beast - одно из наиболее зрелых решений в плюсах.

    Старый ответ:
    Попробуйте C++ Network Library (на гитхабе) - проект достаточно молодой, но имеет очень интересный функционал и массу удобных абстракций, есть реализации URI, HTTP-клиента и сервера. Фактически это обертка над boost.asio, позволяющая не писать веб-сервер и клиент с нуля. Требует С++11.

    Кроме того, если есть требования по надежности/нагрузке, то лучше иметь дело с проверенным веб-сервером, и тогда стоит посмотреть в сторону FastCGI - тогда в инет будет смотреть какой-нибудь nginx или апач, а ваше приложение будет получать по FastCGI запросы от веб-сервера. Библиотеки для С++ имеются.
    Ответ написан
    Комментировать