2009-05-17 10 views
1

Ich habe eine C++ - App und suche nach einer Bibliothek, die es zu einem HTTP-Server macht, der sowohl statische Dateien bereitstellen als auch sehr einfache Aufgaben ausführen kann. Die einzige Einschränkung ist, dass es plattformübergreifend sein muss.C++ - Anwendung eine HTTP-Webserver-Funktionalität geben

Was sind meine Möglichkeiten?

Klären: Ich brauche ein Web-Interface für meine Anwendung. Diese Anwendung ist ein Hintergrundprogramm, das andere Aufgaben ausführt. Ich möchte eine Art und Weise zur Verfügung zu stellen, so dass Sie http://localhost:9999/performtask oder http://localhost:9999/viewstatus zugreifen können

clarification2: so etwas wie diese http://www.gnu.org/software/libmicrohttpd/

+0

Ihre Frage ist wirklich nicht klar. Verfügen Sie über Funktionen, die Sie über das Internet bereitstellen möchten? – Uri

Antwort

5

Siehe this question. Ich entschied mich für Mongoose.

+0

Genau das, was ich brauche (Punkte ++ für Mongoose beim Threading) Danke! –

+0

oder verwenden Sie [Civetweb] (https://github.com/bel2125/civetweb), wenn Sie GPL nicht verwenden können - dies basiert auf der ursprünglichen MIT-lizenzierten Version von Mongoose. – gbjbaanb

-1

Java wäre eine bessere Wahl für eine plattformübergreifende Lösung sein, plus es hat eine guten Web-Services-APIs. Werfen Sie einen Blick auf Netbeans, es ist ein guter Weg, um anzufangen.

+1

Dies wäre ein guter Weg zu nehmen, außer die Anwendung ist bereits geschrieben, es muss C oder C++ sein –

-1

Qt-Framework haben Buildin Webkit. schau das mal an.

+1

Ich denke, Sie haben die Frage nicht gelesen. – BastiBen

0

Werfen Sie einen Blick auf Snorkel, es ist ein leichtes, plattformübergreifendes Embedded/Application Server SDK, mit dem Sie schnell Web-Schnittstellen zu jeder C/C++ - Anwendung hinzufügen können. Es ist frei und kann bei http://sites.google.com/site/snorkelembedded gefunden werden. Es ist schneller als Mungo.

1

Die Wt library macht genau dies. Empfohlen, besonders wenn Ihre Benutzeroberfläche komplexer wird.

+0

+1 Wt ist die beste Bibliothek, die ich gefunden habe. Guter Beispielcode. Schlechte Dokumentation. Einfach, wenn Sie Qt Hintergrund haben. –

1

Ich habe die gleiche Sache erreicht, die Sie erreichen möchten, indem Sie das HTTP Server-Beispiel für boost :: asio verwenden.

http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/examples.html

Das war eine perfekte Lösung für mich, weil mein Projekt auf boost :: Thread bereits abhängig war und boost :: asio, so könnte der HTTP-Server Beispielcode passen in meine Anwendung und ich einfach komplett haben Kontrolle über sein Threading-Verhalten. Ich habe gerade HTTP-Server-Beispieldateien in mein Projekt kopiert und die Anfrage-Antwort-Logik angepasst.

1

Nur ein Gedanke!

Warum konvertieren Sie Ihren C++ - Anwendungscode nicht in ein natives/Erweiterungsmodul für einen der folgenden HTTP-Server.

  • Apache Webserver
  • IIS 7.0 nativen Modul
  • Nginx
  • Light

Alle oben genannten Server außer IIS sind Cross-Plattform.

Vielleicht würde die Erstellung eines Erweiterungsmoduls zu einer besseren Ausgabe führen und die oben genannten Server sind ebenfalls sehr skalierbar.

Verwandte Themen