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
C-/C++-Quelltext |
|
1 2 3 4 |
void WriteWithSocket(wxSocketBase *socket); void WriteWithSocket(sf::Socket *socket); void ReadWithSocket(wxSocketBase *socket); void ReadWithSocket(sf::Socket *socket); |
C-/C++-Quelltext |
|
1 |
void SetData1(char *something); |
C-/C++-Quelltext |
|
1 |
void Send();
|
Ja genau. Beispielsweise Client drückt W um sich nach oben zu bewegen (in einer 2D-Welt). Das Event wird ausgeführt, im Protokoll verarbeitet und versendet. Das stellt kein Problem dar. Das Problem ist eben, wie sorge ich dafür, dass wenn der Server das Paket kriegt, ein Socket-Input-Event auslöst, damit ich auf das Empfangen reagieren kann.Zitat
Also wenn ich dich jetzt richtig verstanden habe, dann willst du die Events (z.B. Tastatur Input) mit deinem Protokoll an den Server schicken, richtig?
Ich weiss nicht genau, warum du verschiedene Sockets verweden möchtest und dann trotzdem alles irgendwie mit Boost ASIO vermischst. Also ich würde dir empfehlen dich auf eine Socket Implementierung zu beschränken. Wenn du modular bleiben willst, dann solltest du wie Tobiking erwähnt hat, solltest du das Adapter Pattern verwenden. Somit hast du ein allgemeines Interface für Client/Server/alle anderen Libs und kannst dann im Hintergrund entscheiden, ob das nun über ASIO, SFML oder wxWidgets Sockets geht. Ist aber meiner Meinung nach overkill, wenn nicht sogar völlig unnötig. Der Sinn von Sockets ist ja eigentlich eine Verbindung zwisch A und B herzustellen, da spielt es ja dann eigentlich gar keine Rolle welche Sockets nun wo verwendet werden.Der Vorteil: Die Sockets gehören zur SFML bzw wxWidgets und lösen auch dementsprechend Events aus (Socket Input Event). Dann übergebe ich das Socket dem SGP und das erledigt den Rest. Der Nachteil ist natürlich, dass man dann auf die Bibliotheken beschränkt ist, die ich hier implementiere.
Wenn ich das richtig verstehe, hast du da ein normales Netzwerk Programmierung Problem. Es gibt ja verschiedene Arten das zu implementieren: Blocking, Non-Blocking, Asynchronous, Callback, etc.Ja genau. Beispielsweise Client drückt W um sich nach oben zu bewegen (in einer 2D-Welt). Das Event wird ausgeführt, im Protokoll verarbeitet und versendet. Das stellt kein Problem dar. Das Problem ist eben, wie sorge ich dafür, dass wenn der Server das Paket kriegt, ein Socket-Input-Event auslöst, damit ich auf das Empfangen reagieren kann.
Werbeanzeige