Komm in unsere Facebook Gruppe

Willkommen Gast
Du bist nicht angemeldet, um alle Funktionen des Forums zu nutzen musst du dich registrieren und anmelden. Die Registrierung ist natürlich völlig kostenlos und kann jeder Zeit wiederrufen werden.

Aktuelle Zeit: 17. Mai 2012 10:08

Protokoll

Beschreibt die Kommunikation zwischen Interface und Listener,



Datenpaket an den Listener


Interfaces können über das hier beschriebene Protokoll Befehle und Daten an den Listener senden oder vom Listener empfangen um einen Gameserver zu steuern. Das Datenpaket müss über TCP auf dem in der Konfiguration des Listeners angegebenen Port gesendet werden. Das Datenpaket das gesendet wird ist folgendermaßen aufgebaut:
Code: Alles auswählen
md5(PASSWORD){0x00}SERVER{0x00}COMMAND{0x00}DATA
String - MD5 Hash des Passworts
Byte - {0x00}
String - Server (Name des Servers aus der games.ini)
Byte - {0x00}
String - Kommando (siehe unten)
Byte - {0x00}
String - Daten

Liste der Kommandos
Der Listener erwartet als dritten String im Datenpaket eins der folgenden Kommandos:
  • status - Gibt den Status des Servers zurück (UP = Server läuft DOWN = Server läuft nicht)
  • start - Startet den Server
  • stop - Stoppt den Server
  • get_config - Sendet die Konfigurationsdatei des Servers
  • set_config - Erwartet eine neue Konfiguration für den Server und schreibt die server.cfg
  • get_log - Sendet die Logdatei des Servers
  • delete_log - Löscht die Log Datei

Ein Paket zum starten eines Servers könnte folgendermaßen aussehen:
Code: Alles auswählen
e22a63fb76874c99488435f26b117e37\x00server1\x00start\x00


Antwort vom Listener


Der Listener antwortet bei falschem Passwort mit Login fail.
Auf den status Befehl antwortet der Listener entweder mit einem Byte {0x00} wenn der Server nicht läuft oder mit einem Byte {0x01} wenn der Server läuft.
Auf start und stop Befehl wird mit starting server bzw. stopping server geantwortet.
Auf get_config und get_log antwortet der Server mit dem Inhalt der jeweiligen Datei.
Auf delete_log antwortet der Server mit delete log
Auf set_config antwortet der Server mit write configfile


Beispielcode


Der hier gezeigte Code ist ein Beispiel wie man über ein PHP-Script mit dem Listener kommunizieren kann.
Code: Alles auswählen
$send = md5('passwort') . "\x00" . 'server1' . "\x00" . 'start' . "\x00";
$socket = fsockopen('123.123.123.123', '8006', $errno, $error, 0.5);
fwrite($socket, $send . "\n");
$buffer = '';
while (!feof($socket)) 
{
    $buffer .= fgets($socket);
}
echo $buffer;
fclose($socket); 




Veröffentlicht am: 27. Nov 2011 04:07
von: Tobi
Zugriffe: 92
Bewertung: 0/5 (0 Bewertungen)


Ähnliche Artikel


Zurück zu Gameserver Interface