2013-02-13 10 views
8

Ich arbeite mit libcurl. Es ist sehr gut (als Client) und ich habe einen Socket zu einem Server geöffnet und dann meine http-Pakete gesendet.Wie man HTTP-Server mit libcurl entwickeln

Ich frage mich, ob es möglich ist, http-Server mit der libcurl zu entwickeln. Der HTTP-Server wird auf einen bestimmten Port warten, und wenn er ein HTTP-Paket empfängt, gibt der HTTP-Server eine Digest-Authentifizierung zurück.

Ich habe einige Untersuchungen im Stackoverflow und in der Curl-Website gemacht, aber ohne Ergebnis.

Ist das mit libcurl möglich? und wie es geht?

+1

cURL ist eine clientseitige Bibliothek, die für die Entwicklung eines Servers nicht geeignet ist. –

Antwort

9

Um einen Blick auf http://www.gnu.org/software/libmicrohttpd/ nehmen, was andere gesagt haben: nein, Libcurl nicht für Server ist. Es heißt sogar in der curl FAQ:

5.17 Kann ich einen Server mit libcurl schreiben?

Nr. Libcurl bietet keine Funktionen oder Bausteine, um irgendeine Art des Internetprotokollservers zu bauen. libcurl ist nur eine clientseitige Bibliothek. Für Server-Bibliotheken, müssen Sie Ihre Suche woanders fortsetzen, aber gibt es viele gute Open-Source-da draußen für die meisten Protokolle könnten Sie möglicherweise einen Server für. Und es gibt wirklich gute Stand-Alone, die seit vielen Jahren getestet und bewährt sind. Sie müssen sie nicht neu erfinden!

0

Dies scheint nicht der Zweck der libcurl, wie Sie Libcurl fungiert als Client gesagt haben, zu wiederholen

+0

Ich sehe die Codequelle und es sieht ein riesiges Programm aus. Ich bin auf der Suche nach einem kleinen Code zu meinem Code nur für diesen speziellen Fall zu arbeiten – MOHAMED

+0

ist es möglich, einige Funktion aus dem Code zu extrahieren, um es zu tun? – MOHAMED

2

Sie müssen einige HTTP Server Bibliothek (seit libcurl ist nur ein HTTP Client librart) Ich würde vorschlagen, libonion zu verwenden, aber es gibt einige andere HTTP-Server-Frameworks (libmicrohttpd, POCO & Wt in C++. ...).

HTTP ist ein komplexes Protokoll, auch wenn ein Server für eine kleine Teilmenge Codierung (wie Ebene GET Anfragen, ohne all die nützlichen Funktionen wie bedingte Anfragen, Codierung & Kompression, etc ...) von vernünftigerweise durchführbar ist. Daher empfehle ich die Verwendung einer vollwertigen HTTP-Server-Bibliothek, und das kann keine winzige-Bibliothek sein.