Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

51

16.04.2013, 15:43

PS: Kann jemand das "Event-basiert" aus dem Titel nehmen? :D


Ja, Du, indem Du den Startbeitrag editierst.

Ansonsten: klingt nach einer Menge überfälliger Änderungen. Viel Erfolg auf dem weiteren Weg.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

52

16.04.2013, 15:45

Ja, Du, indem Du den Startbeitrag editierst.


Hab ich gerade gemerkt :D Danke ^^

Ansonsten: klingt nach einer Menge überfälliger Änderungen. Viel Erfolg auf dem weiteren Weg.


Oh ja ^^

53

05.06.2013, 14:23

*push in der Hoffnung auf weiteres Feedback und Kritik jeglicher Art*
Der Code befindet sich nach wie vor auf GitHub: https://github.com/cgloeckner/networking

Btw: Im SDL-Forum wurde mir empfohlen den Server nicht mit SDL_net sondern Boost Asio zu betreiben. Der Bottleneck mit SDL_net wäre bei sehr vielen Clients (es wurde dort am Beispiel von MMORPGs argumentiert) zu groß und Boost Asio besser geeignet. Wie seht ihr das?

LG Glocke

54

28.01.2014, 10:29

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:

  1. Abstraktion der Sockets und Implementierung eines abstrakten Servers und Clients.
  2. 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^^)

Werbeanzeige