Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server- Client Interface für ein Kartenspiel über Netzwerk (https://www.delphipraxis.net/24485-server-client-interface-fuer-ein-kartenspiel-ueber-netzwerk.html)

sAibo 21. Jun 2004 23:02


Server- Client Interface für ein Kartenspiel über Netzwerk
 
Sorry dass ich schon wieder ein Thema eröffne, hab mir nur gedacht ich frag hier lieber vorab mal, bevor ich nachher mit jedem kleinen Problem kommen muss =)

Also die Situation:
Wir sind an einem Yugi- Oh Kartenspiel (ja ist nen Kinderkartenspiel, aber cool :) ) übers Netzwerk für Computer Technik
Bin mir nicht ganz sicher ob das erste spiel gleich über Netzwerk spielbar sein muss^^ aber jetzt ist es zu spät für nen Rückzieher *g*

Nun mein Problem:
Ich hab davor noch nie was in der Richtung programmiert =)

Was ich schon habe:
Chat :)
+ Idee für den Datenaustausch
Zu erst wollt ich Chat und restlich Kommunikation über zwei verschiedene Server-Client Verbindungen laufen lassen. Musste jetzt aber leider feststellen, dass es so nicht funktionieren kann -> da keine zwei Server erlaubt sind

Meine Frage:
Wie würdet ihr grundsätzlich das Gerüst für das gesamte Netzwerk Interface aufbauen?
kann mir da irgendwer ein paar Tipps zu geben? nicht dass ich morgen wieder die nächst Hürde vor mir hab *g*
Was ich noch Dazu sagen muss... ich kann in der schule keine indy Komponenten nutzen und muss deshalb alles irgendwie über diese TSockets hinbekommen. (Delphi 5)




Bisherige Idee:
Ich dachte mir die Kommunikation mit Hilfe von zwei verschiedenen Records zu programmieren
In einem Record wird immer die aktuelle Spielkarte verschickt, in dem andern die aktuellen Variablen wie Rundenzahl, welcher Spieler etc. ....
Nun wollte ich über die verschiedenen Read Methoden beim Server/Client mit Hilfe verschiedener Abfragen wie Spieler, Runde etc. die Prozedur zur Kommunikation schreiben…
Ein Problem vor dem ich gerade sitz… nur der Client kann Records zum Server verschicken… anders her rum will’s irgendwie nicht  „Socket nicht Verbunden….“ In die andere Richtung geht’s allerdings….

Na ja soweit erst mal. Ich hoffe ihr könnt mir vielleicht ein paar Denkansätze geben.

Danke im Voraus Tobi

supermuckl 22. Jun 2004 00:21

Re: Server- Client Interface für ein Kartenspiel über Netzwe
 
also ich kann dir nur nahe legen das ganze über indy abzuwickeln..
indy kann auch auf D5 installiert werden

alcaeus 22. Jun 2004 04:56

Re: Server- Client Interface für ein Kartenspiel über Netzwe
 
Zitat:

Zitat von sAibo
Sorry dass ich schon wieder ein Thema eröffne, hab mir nur gedacht ich frag hier lieber vorab mal, bevor ich nachher mit jedem kleinen Problem kommen muss =)

Hier ist jedem lieber, wenn du 10 Themen eröffnest (zu verschiedenen Problemen) als alles in einen Thread hineinzugeben. Ist überhaupt kein Problem hier.

Zitat:

Zitat von sAibo
Nun mein Problem:
Ich hab davor noch nie was in der Richtung programmiert =)

Was ich schon habe:
Chat :)
+ Idee für den Datenaustausch
Zu erst wollt ich Chat und restlich Kommunikation über zwei verschiedene Server-Client Verbindungen laufen lassen. Musste jetzt aber leider feststellen, dass es so nicht funktionieren kann -> da keine zwei Server erlaubt sind

Meine Frage:
Wie würdet ihr grundsätzlich das Gerüst für das gesamte Netzwerk Interface aufbauen?
kann mir da irgendwer ein paar Tipps zu geben? nicht dass ich morgen wieder die nächst Hürde vor mir hab *g*
Was ich noch Dazu sagen muss... ich kann in der schule keine indy Komponenten nutzen und muss deshalb alles irgendwie über diese TSockets hinbekommen. (Delphi 5)

Also, nachdem du das alles mit Server- und Clientsockets lösen musst, kann ich dir nur empfehlen, dieses Tutorial durchzumachen:
Einen Chat mit den Sockets programmieren
Mit durchmachen meine ich jetzt also nicht, sondern auch in Delphi das machen was steht. Anschließend wirst du sehen, wie einfach die Verwendung dieser Sockets ist.
Und bezüglich der zwei Server, siehe meinen Beitrag im anderen Thema.


Zitat:

Zitat von sAibo
Bisherige Idee:
Ich dachte mir die Kommunikation mit Hilfe von zwei verschiedenen Records zu programmieren
In einem Record wird immer die aktuelle Spielkarte verschickt, in dem andern die aktuellen Variablen wie Rundenzahl, welcher Spieler etc. ....
Nun wollte ich über die verschiedenen Read Methoden beim Server/Client mit Hilfe verschiedener Abfragen wie Spieler, Runde etc. die Prozedur zur Kommunikation schreiben…
Ein Problem vor dem ich gerade sitz… nur der Client kann Records zum Server verschicken… anders her rum will’s irgendwie nicht  „Socket nicht Verbunden….“ In die andere Richtung geht’s allerdings….

Das mit den Records ist eine gute Idee. WIchtig ist, das "Öffnen" des Records in einer try-except-Schachtelung zu machen, da es sonst bei ICMP-Paketen o.ä. zu Exceptions kommmt.
Bezüglich des Problems beim Senden mit dem Server:
Während der Client mit
Delphi-Quellcode:
ClientSocket1.Socket.SendBuffer(...);
die Daten versendet, musst du beim Server folgendes verwenden:
Delphi-Quellcode:
ServerSocket1.Socket.Connections[n].SendBuffer;
n ist dabei die Nummer der Verbindung. Doch das steht alles in oben genanntem Tut drinnen, mach das mal durch, wenns dann noch Fragen gibt helfe ich gern wieder.

Greetz
alcaeus

sAibo 22. Jun 2004 11:59

Re: Server- Client Interface für ein Kartenspiel über Netzwe
 
danke soweit mal :)

seh grad, dass ich des mit den connection total vergessen hatte :-D obowhls im chat ja genau so abläuft...
das tutorial arbeite ich heute mittag durch, hab zum glück keine schule *g*

indys kann ich leider nich installieren, alle die noch zur schule gehen wissen wie sich mehr oder minder begabte informatik lehrer mit sowas anstellen =)

ich meld mich wenn weiter hin noch probleme auftauchen

greetz & thx tobi

Ultimator 22. Jun 2004 13:00

Re: Server- Client Interface für ein Kartenspiel über Netzwe
 
Cool, mein Tut wird weiterempfohlen *freu* :-)

sAibo 23. Jun 2004 17:42

Re: Server- Client Interface für ein Kartenspiel über Netzwe
 
Halllo nochmal =)

Eine Frage hab ich gerade noch, wie kann ich am besten zwei records zusammen verschicken?
Delphi-Quellcode:
ClientSocket1.Socket.SendBuffer(rec1,rev2,sizeof(rec1),sizeof(rec2));
geht nich oder?

Muss ich sie nacheinander verschicken, dann halt abfragen welches record gerade kommt und zum schluss beim Gegner speichern?

alcaeus 23. Jun 2004 17:50

Re: Server- Client Interface für ein Kartenspiel über Netzwe
 
Ja, aber verwende einen Index, da die Records nicht sicher in der Sendereihenfolge ankommen.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

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 by Thomas Breitkreuz