Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Pokerprojekt realisierung (https://www.delphipraxis.net/89252-pokerprojekt-realisierung.html)

.chicken 9. Apr 2007 13:24

Re: Pokerprojekt realisierung
 
Super, danke dass du dir soviel Mühe machst ;-)
Also äh...ich arbeite jetzt erstmal das Tutorial durch, das is ziemlich hilfreich und lässt mich mein Projekt nochn bisschen vereinfachen!

Dann werd ich das Projekt weiter bearbeiten und versuchen es so einfach wie möglich zu halten ;-)
Übrigens, weiss nich ob du mich da falsch verstanden hast :D ich hatte Server und Client keineswegs gegenseitig in den uses oder so ^^

Also eine Frage aber noch: Würdest du dann den jeweiligen Controller für das Parsen vom Text einsetzen oder Server/Client?
Denke mal Server und Client sind wirklich NUR für das verschicken und empfangen der Nachrichten oder?

Der_Unwissende 9. Apr 2007 17:24

Re: Pokerprojekt realisierung
 
Zitat:

Zitat von .chicken
Übrigens, weiss nich ob du mich da falsch verstanden hast :D ich hatte Server und Client keineswegs gegenseitig in den uses oder so ^^

Ich wollte mich da eher auf den Controller beziehen. So habe ich hier einen Controller sowohl auf Seiten des Servers, als auch auf Seiten des Client. Allerdings sind hier eben zwei verschiedene gemeint. Bei Dir was es ja (soweit ich Dich richtig verstanden habe) so gewesen, dass der Server auf den Controller zugreift und umgekehrt. Da wollte ich nur zeigen, dass das nicht nötig ist.

Zitat:

Zitat von .chicken
Also eine Frage aber noch: Würdest du dann den jeweiligen Controller für das Parsen vom Text einsetzen oder Server/Client?
Denke mal Server und Client sind wirklich NUR für das verschicken und empfangen der Nachrichten oder?

Ja, Client und Server sollten nur für das Verschicken/Empfangen zuständig sein. Das ganze ist dann wieder eine einfache Form der Entkopplung, wie man versendet sollte unabhängig von dem sein, was man versendet. Das eigentlich wichtige ist aber, dass hier auch zwei Pfeile reingehen, einmal für das verschicken einer Aktion und einmal für das Benachrichtigen über Änderungen. Das heißt, dass hier zwei verschiedene Komponenten auf diese Teile (TCP-Server bzw. TCP-Client) zugreifen.

.chicken 10. Apr 2007 11:35

Re: Pokerprojekt realisierung
 
Jo super, danke das hab ich dann soweit verstanden!
Ich löse es jetzt auch erstmal so, dass der Server ein eigenständiges Programm darstellt und auch angezeigt wird, damit ichi hm ein Protokoll etc hinzufügen kann! ;-)
Danke für deine Hilfe

.chicken 12. Apr 2007 14:27

Re: Pokerprojekt realisierung
 
Also bin jetzt dabei das so zu realisieren, wie du gesagt hast bzw mit deiner Grafik gezeigt hast!
Aber: Er gibt mir trotzdem noch den Fehler aus: "Circulat Unit references to TCPServer".

Also zu den uses:
Delphi-Quellcode:
//TCPServer
uses ServerGameController;

//ServerGameController
uses GameServer;

//GameServer
uses ServerUpdateController;

//ServerUpdateController
uses TCPServer;
So und er gibt mir die oben genannte Fehlermeldung aus!!!
Hab ich dich da etwa wieder falsch verstanden?

Edit: Noch ne Frage!
Macht es überhaupt Sinn zB eine eigene Klasse für den UpdateController oder so zu schreiben? Kann ich nicht einfach nur so die Prozeduren und Variablen da eintragen? Ich muss so die Klassen ja immer extra createn, was ham die Klassen in diesem Fall für Vorteile?

.chicken 14. Apr 2007 23:36

Re: Pokerprojekt realisierung
 
Weisste dazu denn nix? *seufz*

DGL-luke 15. Apr 2007 12:17

Re: Pokerprojekt realisierung
 
Hallo,

das heißt du hast zirkuläre unit-referenzierung, sprich zwei units binden sich gegenseitig ein.
Das kann man zwar umgehen, in dem man eine der uses-klauseln in den implementation-abschnitt verschiebt. sowas sollte aber nicht passieren.

.chicken 15. Apr 2007 18:40

Re: Pokerprojekt realisierung
 
Ja, ich weiss was das bedeutet und wie man es verhindern kann und dass das sclechter Stil ist.
Aber "der Unwissende" hat mir ja eine .pdf Datei hochgeladen, in der er gezeigt hat, wie er es umsetzen wuerde, das hab ich so gemacht und nun tritt halt der Fehler auf, deswegen wollte ich ihn fragen, ob das nun mein Fehler in der Umsetzung ist!

Der_Unwissende 17. Apr 2007 14:51

Re: Pokerprojekt realisierung
 
Zitat:

Zitat von .chicken
Ja, ich weiss was das bedeutet und wie man es verhindern kann und dass das sclechter Stil ist.
Aber "der Unwissende" hat mir ja eine .pdf Datei hochgeladen, in der er gezeigt hat, wie er es umsetzen wuerde, das hab ich so gemacht und nun tritt halt der Fehler auf, deswegen wollte ich ihn fragen, ob das nun mein Fehler in der Umsetzung ist!

Sorry, ist ein Fehler meinerseits! In der Zeichnung müsstest Du den TCP-Server eigentlich in zwei Units zerlegen. Die eine kaspelt dabei wirklich einen Server, kommt eine Nachricht an geht die an den Server Game Controller. Eine andere Unit hingegen verwendet einen TCP-Client (um Aktiv etwas verschicken zu können!). Nur diese Unit wird vom Server Update Controller verwendet.
Dann sollte es auch klappen (mit dem kreisfreien Programm).

Ansonsten ist immer noch eine elegante Möglichkeit, dass Du Call-Backs/das Observer-Pattern verwendest. Hier kennt dann der GameController den Server, aber nicht umgekehrt. Der Controller registriert sich dann einfach beim Server für die Benachrichtigung über eingehende Ereignisse.

Gruß Der Unwissende

.chicken 17. Apr 2007 15:12

Re: Pokerprojekt realisierung
 
Ok, super danke für die schnelle Antwort. Dann weiss ich wie des gemeint ist!
(Außer die zweite Möglichkeit, die hab ich net ganz verstanden, aber ich versuch das nun mal zu lösen ^^)

.chicken 15. Mai 2007 14:10

Re: Pokerprojekt realisierung
 
Also ich kram das Thema mal nochmal hervor. Hab das Projekt ne Zeit stehen lassen um mich etwas weiter in Internetprogrammierung reinzufinden. Wills jetzt nochmal rauskramen. Wenn ich nun auf einem Server mehrere Pokertische erstellen will, würde ich das folgendermaßen regeln:

Eigene Klasse TPokerTable, die pro Instanz ein Spiel verwaltet. Auf dem Server erstell ich dann ein dynamisches Array davon und an jede Message zum Server häng ich einfach eine ID für den passenden Server dran. Richtig soweit?

Und dann nochwas, wenn ein Client verbindet und ich seinen Socket dann ine Objectlist packe, der Client dann disconnected und irgendwann wiederkommt. Kann ich den Client dann immernoch mit dem Socket in der List identifizieren? Auch wenn die IP erneuert wurde?

Danke soweit


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 Uhr.
Seite 6 von 7   « Erste     456 7      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz