Неблокирующий HTTP-сервер Poco? - PullRequest
0 голосов
/ 24 марта 2020

В документации Poco (https://pocoproject.org/docs/Poco.Util.ServerApplication.html) есть:

int main(int argc, char** argv)
{
    MyServerApplication app;
    return app.run(argc, argv);
}

Это подразумевает отдельное, блокирующее серверное приложение. Тем не менее, мой вариант использования заключается в том, что я хотел бы интегрировать HTTP-сервер в мое уже существующее приложение C ++, и оно не должно блокировать остальную часть приложения. Можно ли как-нибудь просто запустить сервер Poco в своем собственном потоке?

1 Ответ

1 голос
/ 24 марта 2020

A ServerApplication должен быть его собственным Application, поскольку он наследуется от Application . Это означает, что у него есть свой главный.

Так что это зависит от того, что вы хотите сделать в вашем ServerApplication.

Если вы хотите, чтобы что-то было основной функцией, не используйте ServerApplication. Но если вы хотите воспользоваться преимуществами разбора опций и переносимого кода, используйте ServerApplication, и он будет вызывать ваш другой код через поток, аналогичный SampleServer .

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ

См. HttpTimeServerApp

Имеется пример приложения, которое содержит HTTPServer . Может быть, вы просто хотите, чтобы HTTPServer запускался в существующем приложении.

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