Hi, nach einiger Pause habe ich das Projekt nochmal aufgegriffen und etwas umstrukturiert, um es flexibler zu machen. Das Ergebnis ist eine Server-Client-Implementierung, die unabhängig von der verwendeten Socket-Library ist.
GitHub-Link: http://github.com/cgloeckner/netLib
Nach wie vor basiert die Implementierung auf C++11, ist jedoch nicht mehr von SDL abhängig (die Beispiele allerdings schon). Für den Datenaustausch zwischen den Peers gibt es eine BinaryStream-Klasse. Sie kann verschiedene Daten enthalten und kümmert sich um Endianess (noch nicht 100%ig, siehe README.md).
Im Repository befindet sich ebenfalls eine Beispiel-Implementierung auf Basis von SDL_net und TCPsocket. Prinzipiell können analoge Implementierungen auch für UDPsocket oder sogar andere Socket-Frameworks erstellt werden, ohne den eigentlichen Code der Server- und Client-Implementierung zu beeinflussen. Der Code besteht im Kern aus zwei Abschnitten:
- Abstraktion der Sockets und Implementierung eines abstrakten Servers und Clients.
- Abstraktion von Server und Client und Implementierung einer Event-Manager-Struktur.
Zu beiden Varianten gibt es entsprechend einen Beispiel-Code:
Direkte Nutzung der Server- und Client-Klasse: GitHub-Link
Nutzung der Event-Struktur zum Aufrufen von Methoden bei bestimmten Events: GitHub-Link
Ich würde mich über euer Feedback freuen! Das ganze ist noch relativ "frisch" und beeinhaltet sicher einige Designfehler...
LG Glocke
/EDIT: Das Projekt ist damit nicht mehr rein SDL-abhängig (was dem Titel nicht mehr ganz treu wird). Wäre eine Präsentation im Projekt-Unterforum sinnvoll? (Natürlich vorausgesetzt ich baue noch ein etwas größeres Beispiel-Programm - Chatroom oder ähnliches - dazu
)