Способен ли POCO ++ на совместное использование портов?C++

Программы на C++. Форум разработчиков
Anonymous
Способен ли POCO ++ на совместное использование портов?

Сообщение Anonymous »

Основная цель состоит в том, чтобы представить API REST для существующей услуги, написанной в C ++, и PoCO, по -видимому, является лучшим совпадением для этого. Есть другие службы, которые должны работать на одной и той же машине. Конечно, все услуги должны работать на порту 80 для HTTP и на порту 443 для HTTPS. Другие сервисы написаны в .NET и являются либо услугами WCF, работающими на .net Framework 4.7.2 или .net 8 Web Services. Также возможно, чтобы IIS бежал рядом с ним. Все они работают на портах 80 и /или 443, без проблем.
Все работает только в Windows. Либо службы .NET не могут запустить, либо, если они уже запускаются, у Poco есть ошибка.
Если сервис C ++ запускается первым, я получаю свой (еще) статический ответ при доступе к 127.0.0.1 (так что он работает нормально) в браузере, но начинающие другие сервисы. />.net 8 Сервис: microsoft.aspnetcore.server.httpsys.httpsysexception (32): процесс не может получить доступ к файлу, потому что он используется другим процессом. Отказ
Вот код (пожалуйста, игнорируйте управление памятью, это только для POC)

Код: Выделить всё

Poco::Net::SocketAddress addr("0.0.0.0", 80);
Poco::Net::ServerSocket socket(addr);
socket.setReusePort(true);
socket.setReuseAddress(true);
Poco::Net::HTTPServer httpServer(new PocoRequestHandlerFactory("some format"), socket, new Poco::Net::HTTPServerParams());
httpServer.start();
Poco бросает исключение в этой строке: poco :: net :: serversocket socket (addr);
Я также пытался начать так:
Poco::Net::SocketAddress addr("0.0.0.0", 80);
Poco::Net::ServerSocket socket;
socket.bind(addr, true, true);
< /code>
Но это только приводит к брошению исключения в socket.bind (). < /p>
На самом деле можно обмениваться портом с Poco в Windows? Если да, как это работает?

Подробнее здесь: https://stackoverflow.com/questions/795 ... rt-sharing

Вернуться в «C++»