Frage

Es gibt viele Beispiel-Thread-basierte Webserver online, aber ich habe nichts wirklich gesehen, das ein gutes Beispiel für eine Event-Loop-basierte (ohne sehr komplexe, z. B. LightTP und Nginx).

Sind da welche? Wenn nicht, was soll ich lesen/schauen, um zu lernen, wie man einen Server dieser Art erstellt? (Dazu gehört asynchrones IO in C usw.)

Ich verstehe bereits die Grundlagen, wie Event-Loop-basierte Programmierung funktioniert, insbesondere in Sprachen auf höherer Ebene wie Python, aber ich muss in der Lage sein, eine in C. zu implementieren.

War es hilfreich?

Lösung

Hier ist eine Welches ist Teil von Tupelerver Quelle, die verwendet libvent.

Andere Tipps

Ich bin mir nicht sicher, wie voll ausreicht, wie Ihr Server sein muss, aber Hier ist Ein kleiner C -basierter Webserver, der als Ausgangspunkt verwendet werden kann. Es geht für jede Verbindung zu einem Kinderprozess, daher ist es leicht zu verstehen, aber nicht das effizienteste.

Kurz gesagt, einfach: libevent.org und Beispiel: http://www.wangafu.net/~nickm/libevent-book/ . Solange Sie sich in Librevent befinden, arbeitet die API mit HTTP, die EVHTTP ist, nicht wirklich robust. Es gibt eine Alternative bei https://github.com/ellzey/libevhtp . Und natürlich funktioniert libmicrohttpd gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top