[C++] event-based networking framework
Verfasst: So Mär 03, 2013 1:07 pm
Hi, vor einiger Zeit hatte ich mich mit TCP und UDP unter Verwendung von SDL_net beschäftigt. Basierend auf diesen Experimenten habe ich dann eine Möglichkeit gesucht, Datenpakete bequem über das Netzwerk hin- und herschicken zu können.
Dabei herausgekommen ist mein Projekt "Event-Based Networking Framework" auf GitHub: https://github.com/cgloeckner/networking.
Es verwendet SDL und SDL_net[/b] sowie einige Dinge von C++11. Ich habe - da noch nicht alle Kompiler den Standard unterstützen - versucht C++11-spezifische Dinge zu vermeiden. Das ist mir bisher nur teilweise gelungen: der gesamte Threading-Code stammt aus SDL.
Ein paar kurze Gedanken dazu:
Das Framework erst einmal ein Prototyp und stellt verschiedene Klassen zur Verfügung, um Daten via TCP oder UDP zu versenden bzw. zu empfangen. Dabei werden diese Daten als Event einer Warteschlange angefügt und nacheinander versendet. Ankommende Events werden wieder in einer Warteschlange gesammelt und können dann "rausgepoppt" werden. Da diese von Event abgeleiteten Events intern dennoch mittels Event* behandelt werden, verfügen Events über eine event_id. Sie dient dazu herauszufinden, um welche Art Event es sich hier handelt, so dass das gelesene Event anschließend in seine richtige Form gecastet werden kann.
Auf der GitHub-Seite gibt es zwei Beispiele example1.cpp und example2.cpp, die die Funktionsweise demonstrieren.
Mich würde interessieren was ihr davon haltet? Ich nichts vergleichbares finden, was sich so "einfach" (wie in den Beispielen) verwenden lässt.
LG Glocke
Dabei herausgekommen ist mein Projekt "Event-Based Networking Framework" auf GitHub: https://github.com/cgloeckner/networking.
Es verwendet SDL und SDL_net[/b] sowie einige Dinge von C++11. Ich habe - da noch nicht alle Kompiler den Standard unterstützen - versucht C++11-spezifische Dinge zu vermeiden. Das ist mir bisher nur teilweise gelungen: der gesamte Threading-Code stammt aus SDL.
Ein paar kurze Gedanken dazu:
Das Framework erst einmal ein Prototyp und stellt verschiedene Klassen zur Verfügung, um Daten via TCP oder UDP zu versenden bzw. zu empfangen. Dabei werden diese Daten als Event einer Warteschlange angefügt und nacheinander versendet. Ankommende Events werden wieder in einer Warteschlange gesammelt und können dann "rausgepoppt" werden. Da diese von Event abgeleiteten Events intern dennoch mittels Event* behandelt werden, verfügen Events über eine event_id. Sie dient dazu herauszufinden, um welche Art Event es sich hier handelt, so dass das gelesene Event anschließend in seine richtige Form gecastet werden kann.
Auf der GitHub-Seite gibt es zwei Beispiele example1.cpp und example2.cpp, die die Funktionsweise demonstrieren.
Mich würde interessieren was ihr davon haltet? Ich nichts vergleichbares finden, was sich so "einfach" (wie in den Beispielen) verwenden lässt.
LG Glocke