Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Netzwerkspiel realisieren - P2P (https://www.delphipraxis.net/54674-netzwerkspiel-realisieren-p2p.html)

Maximus 9. Okt 2005 15:59


Netzwerkspiel realisieren - P2P
 
Hallo,

Ich arbeite zurzeit an einem Schachprogramm, welches aus Netzwerkfähig sein soll. Vielleicht hab ihr eine Idee wie ich es am besten lösen soll. Ich benutze die WinSocket Komponenten (TServerSocket & TWinSocket).

Ich hab mir schon mal ein paar Gedanken gemacht / Tests ausgeführt.

1.) Jedes Spiel erhält einen Server zum empfangen der Nachrichten und einen Clienten zum senden von Nachrichten. Hier ist jedoch ein Server sowie ein Client zuviel.

2.) In einem Spiel wird entweder ein Server oder ein Client erstellt, je nachdem was gebraucht wird, und eine Kontrollklasse fragt immer ab ob man jetzt Server oder Client ist und Sendet dann die Daten. Da sich Server und Client vom Aufbau her sehr ähnlich sind wäre eine Kontrollklasse nicht schwer zu realisieren.

3.) Etwas anderes ...

Was sind eure Meinung, Ideen und Vorschläge dazu?

MFG
Maximus

Zacherl 9. Okt 2005 16:05

Re: Netzwerkspiel realisieren - P2P
 
Hallo,
versuch es mal mit jeweils einem Indy UDP Server und einem UDP Client.

Florian

Maximus 9. Okt 2005 16:27

Re: Netzwerkspiel realisieren - P2P
 
Mit Indys hab ich bisher nur schlechte Erfahrungen gemacht. Deswegen möcht ich bei den WinSockets bleiben.

Ich hab jetzt mal angefangen es mit der Idee 2 zu versuchen, bisher scheint es zu funktionieren, auch wenn es mir manchmal so vorkommt als hätt ich irgendwie teilweise einiges an Code sparen können, obwohl mir trotz genauerem überlegen nichts eingefallen ist wie.

Ich bin dennoch für Ideen offen, vielleicht kommt noch irgendwas geniales :)

MFG
Maximus

Zacherl 9. Okt 2005 16:28

Re: Netzwerkspiel realisieren - P2P
 
Die IndyUDP Komponenten sind (meiner Meinung nach) sehr simpel und funktionieren perfekt. Ich finde diese ausgesprochen gut. Außerdem ist das UDP Protokoll für eine wirkliche p2p Lösung die einzige Möglichkeit.
Du solltest es einfach mal damit versuchen

Florian

Maximus 9. Okt 2005 17:10

Re: Netzwerkspiel realisieren - P2P
 
*in seinen Gedanken kramt*
Kann es sein das es nicht so war?
UDP = schneller als TCP
TCP = Sicher, dass das Packet ankommt

Wenn es so stimmt, dann wäre aber das TCP Protokoll um einiges besser geeignet für eine Schachsimulation, bei der es nicht auf die Schnelligkeit des Sendens ankommt sonder auf die Zuverlässigkeit, dass die Packete ankommen.

MFG
Maximus

monta 9. Okt 2005 17:17

Re: Netzwerkspiel realisieren - P2P
 
pauschal gesagt ist es so.
TCP baut ja eine Steuerungsleitung auf, weshalb es ja auch langsamer ist, da sich Client und Server über den 'Dreiwegehandschlag' erst verbinden müssen. Allerdings wird da halt auch der Empfang jedes Pakets bestätigt.
Bei UDP kann durchaus mal ein Paket verloren gehen. Aber du könntest dies ja auch zusätzlich in deinem Programm abfragen.
Obwohl ich glaube ich auch zu TCP tendieren würde.

igel457 9. Okt 2005 18:49

Re: Netzwerkspiel realisieren - P2P
 
Du kannst ja wirklich die Datenübertragung mit TCP machen.
Aber wenn du automatisch sehen möchtest wer im Netzwerk ist, bzw. wer gerade ein Spiel aufgemacht hat, dann benötigst du UDP. Da bieten sich die Indys wirklich an.

Ich hab mal so was programmiert, unteranderem konnte das Programm sehen wer gerade Online ist. Der Quellcode ist zwar etwas unübersichtlich, wenn du dir es dennoch anschauen möchtest dann hier.

Maximus 9. Okt 2005 19:08

Re: Netzwerkspiel realisieren - P2P
 
Ok. Ich werde es auf jedenfall erstmal mit TCP realisieren und dann eventuell mal schauen wie es mit UDP funktioniert.

MFG
Maximus

Net7 11. Okt 2005 17:17

Re: Netzwerkspiel realisieren - P2P
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Maximus



Habe da was vorbereitet. Ich hoffe es hilft dir weiter. :roll:

Das Programm veranschaulicht dir das im groben. Aber für ein parr Schachkoordinaten reichts allemal.
Es ist Server und Client zugleich.

Quellcode liegt bei, ist auch gut dokumentiert.

Mfg Net7

Maximus 11. Okt 2005 17:44

Re: Netzwerkspiel realisieren - P2P
 
Wenn ich Datei nur schon vorher gehabt hätte, hätte ich mir viel Mühe ersparen können. Aber trotzdem danke Net7, das Tutorial kann mir bestimmt auch gut als Referenz dienen.

Naja inzwischen läuft rein aus der Sicht des Netzwerkes alles wunderbar (TCP|WinSockets) ...

MFG
Maximus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 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-2025 by Thomas Breitkreuz