![]() |
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. |
Re: Mit Gameserver via UDP kommunizieren
Hi,
um was für einen Gameserver handelt es sich? |
Re: Mit Gameserver via UDP kommunizieren
Es handelt sich um einen
![]() 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. |
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. |
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 |
Re: Mit Gameserver via UDP kommunizieren
Hi,
der Server schickt dann eine Antwort an Dich zurück und diese Antwort musst du auswerten. |
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:
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 :(
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; PS: Das "successful" erscheint, wenn result := true :P |
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.
|
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] |
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 19:10 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