Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Einfache Netzwerkkomponenten (https://www.delphipraxis.net/67742-einfache-netzwerkkomponenten.html)

arbu man 19. Apr 2006 10:58


Einfache Netzwerkkomponenten
 
Hi,

Ich programmiere ein Multiplayer Spiel in OpenGL zur Zeit suche ich eine einfache Möglichkeit die komunikation der Spiele im Netzwerk(LAN an Internet möchte ich gar nicht erst denken), leider hab ich bisher keine Erfahrungen in Sachen Netzwerk. Deswegen meine Frage kennt da jemand eine gute Möglichkeit die einfach zu nutzen ist, um daten von einen PC an alle anderen auf denen das Spiel läuft zu senden ?

thx, arbu man

Thorben77 19. Apr 2006 11:02

Re: Einfache Netzwerkkomponenten
 
Die Standardantwort: die Hier im Forum suchenIndy-Komponenten :wink: . Da findest Du auch genug Beispiele hier im Forum.

arbu man 19. Apr 2006 14:42

Re: Einfache Netzwerkkomponenten
 
Zitat:

Zitat von Thorben77
Die Standardantwort: die Hier im Forum suchenIndy-Komponenten :wink: . Da findest Du auch genug Beispiele hier im Forum.

Warum überrascht mich diese Antwort nicht :?: (scheint wohl die meist verwendete Komponente(n) zu sein) OK ich hab mich mal etwas näher mit den Indys auseinander gesetzt und bin beim TIdTCPClient(und Server) sethen geblieben(die Demo sieht nicht schlecht aus :stupid: ).


Aber sind die Komponenten TIdTCPClient(und Server) auch für Netzwerkspiele geeignet da die CPU auslastung immer bei 100% liegt und die Nachrichten in einen Thread abgefragt werden oder gibt das Probleme ?

Daniel G 19. Apr 2006 14:48

Re: Einfache Netzwerkkomponenten
 
Zitat:

Zitat von arbu man
Aber sind die Komponenten TIdTCPClient(und Server) auch für Netzwerkspiele geeignet da die CPU auslastung immer bei 100% liegt und die Nachrichten in einen Thread abgefragt werden oder gibt das Probleme ?

Eigentlich sollte es keine Probleme geben. Musst dir halt noch 'nen Protokoll ausdenken.. und dann dürfte das klappen.. ;)

arbu man 19. Apr 2006 14:53

Re: Einfache Netzwerkkomponenten
 
Zitat:

Zitat von Daniel G
Eigentlich sollte es keine Probleme geben. Musst dir halt noch 'nen Protokoll ausdenken.. und dann dürfte das klappen.. ;)

Das ist schön :-D nur was weisst Protokoll ausdenken, du wie mache ich das :?:

H4ndy 19. Apr 2006 15:34

Re: Einfache Netzwerkkomponenten
 
Je nach dem, was es für ein Spiel ist, könntest du auch UDP anstelle von TCP benutzen.
UDP ist ein sogenanntes "verbindungsloses" Protokoll, d.h. du schickst einfach Daten an einen
Zielrechner in der Hoffung sie kommen an ;)

Dabei können sich Pakete überholen oder verloren gehen, dafür ist der Overhead (zusätzlich
anfallende Daten, die nur intern genutzt werden und nicht von dir) sehr gering.
Meist ist UDP auch schneller als TCP sodass es für actionreiche Spiele meist besser geeignet ist.
(Und wo es nicht so viel ausmacht, wenn mal geringe Informationen verschluckt werden)

Was Daniel G mit Protokoll meinte:
Du musst dir "Kommandos" überlegen, welche du losschicken kannst
und welche dann beim Server/Client gewissen Aktionen oder Antworten auslösen.
Das kann schnell viel werden, ist aber an sich nicht schwer zu implementieren.

z.B. könntest du dir Konstanten definieren:
Delphi-Quellcode:
const
  DO_THAT = 'DOIT';

procedure Button1Click(Sender: TObject);
begin
 Client.Socket.SendText(DO_THAT);
end;

procedure ServerOnRead(bla blubb);
var Data: string;
begin
  Data := Socket.ReceiveText;
  if Data = DO_THAT then
    ShowMessage('Ich mache was');
end;
(Wirklich nur gaaaanz grob)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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