Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mit Gameserver via UDP kommunizieren (https://www.delphipraxis.net/83981-mit-gameserver-via-udp-kommunizieren.html)

No0oB 9. Jan 2007 18:33


Mit Gameserver via UDP kommunizieren
 
Hallo miteinander.
Ich habe kürzlich beschlossen ein Programm zu schreiben, welches mir erlaubt auf meinen Gameserver zuzugreifen und diesen zu administrieren. Ich selbst, bin in Delphi nicht sehr bewandert, wollte also dadurch meine Kenntnisse erweitern.
Jedoch stellt sich folgendes Problem in den Weg: Wie kann ich von dem Server Daten kriegen?
Ich habe mir vorgestellt, dass sich das über UDP lösen lässt, also hab ich mir die Indy-Komponente installiert und mich daran versucht. Wie kann ich aber die Befehle an den Server schicken? über Send() ? [die IdUDPClient-Komponente]
Hab ich einen Denkfehler? Könnt ihr mir helfen?
Vielen Dank.

Die Muhkuh 9. Jan 2007 18:36

Re: Mit Gameserver via UDP kommunizieren
 
Hi,

um was für einen Gameserver handelt es sich?

No0oB 9. Jan 2007 18:44

Re: Mit Gameserver via UDP kommunizieren
 
Es handelt sich um einen Savage Server.
Man kann aber auch generell meine beiden Fragen beantworten ;)

Um den Server administrieren zu können, öffnet man im Spiel die Konsole, loggt sich mit cl_adminpassword blah ein, und kann mittels svcmd <befehl> die Befehle ausführen.
Ich möchte nun wissen, wie ich in die "Konsole" komme, bzw. den Rückgabewert von allen Werten kriegen kann.

Die Muhkuh 9. Jan 2007 18:51

Re: Mit Gameserver via UDP kommunizieren
 
Hi,

als erstes solltest Du versuchen ein SDK herzubekommen bzw. eine Definition des Protokolls.

Danach müsstest Du das 1 zu 1 nach Delphi portieren, danach per UDP.Send (imho) die Kommandos senden.

No0oB 9. Jan 2007 18:55

Re: Mit Gameserver via UDP kommunizieren
 
Und wie kann ich die Pakete dann empfangen?
Tut mir Leid, bin wie gesagt nicht so sehr mit Delphi bewandert, vor allem nicht mit Internetprogrammierung

Die Muhkuh 9. Jan 2007 18:58

Re: Mit Gameserver via UDP kommunizieren
 
Hi,

der Server schickt dann eine Antwort an Dich zurück und diese Antwort musst du auswerten.

No0oB 9. Jan 2007 19:12

Re: Mit Gameserver via UDP kommunizieren
 
Ein Beispiel wäre nett :-/
Ich weiss zum Beispiel nicht, ob ich dieses Send() einer Variable zuweisen soll und wenn ja, welchem Typ?

Ich hab zum Beispiel bis jetzt folgendes:
Delphi-Quellcode:
function TForm1.admin_login(pass, host:string; port:integer): boolean;
begin
  try
    UDP.Send(Host, Port, 'cl_adminpassword '+pass);
    result := true;
  except
    result := false;
    exit;
  end;
end;
Eigenartiger Weise zeigt das Programm immer an, dass das einloggen "sucessful" war, was wahrscheinlich daran liegt, dass ich kein Paket auswerte, da ich das nicht kann :(
PS: Das "successful" erscheint, wenn result := true :P

inherited 9. Jan 2007 22:12

Re: Mit Gameserver via UDP kommunizieren
 
Wenn du im Spielclient'cladminpassword' eingibst, heisst das nicht, dass dass so 1:1 an den Server gschickt wird. Du musst dir also entweder ein SDK des Spiels/Protokols besorgen oder den Programmierer nett fragen, ob er dir eine Protokollspezifikation gibt.

Die Muhkuh 10. Jan 2007 13:38

Re: Mit Gameserver via UDP kommunizieren
 
Hi,

so einfach wird das nicht gehen *g*.

Wie inherited schon sagte, wirst Du die Protokolspezifikation benötigen, sonst wird das nicht klappen.

[edit] Schon wieder zufrüh abgesendet *hrmpf*
Ich könnte dir höchstens ein Beispiel bei einem CS:Source Server zeigen, wie die das dort machen, sofern intresse besteht.
[/edit]

No0oB 10. Jan 2007 16:46

Re: Mit Gameserver via UDP kommunizieren
 
Ja, natürlich besteht Interesse :)
Oder einfach nur ein einfaches Beispiel, wie man ein Paket von dem Server zugesendet bekommt und diesen auswerten kann.
Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr.
Seite 1 von 2  1 2      

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