Hallo,
ich würde gerne Lifestats für unsere Gameserver (BF1942 && CS:S) coden, aber ich steig da nicht so wirklich durch.
Für BF1942 habe ich zwar was fertiges gefunden, aber ich möchte keinen Code von anderen einbauen, sondern mir ist es wichtiger zu verstehen, was passiert. Wie geht man generell vor, das ich mit dem Server "reden" muss, ist mir wohl klar, aber wie spreche ich seine Sprache?
Ich nehm als Beispiel mal dieses BF Script, vllt könnt Ihr mir das erklären bzw mich verbessern
Falls das $socket exstiert (true), geht's so weiter
Was nun kommt, versteh ich absolut rein gar nicht mehr ![Smilie](https://www.php-resource.de/forum/core/images/smilies/smile.gif)
Dann gehts so weiter...
Wäre nett, wenn mir das mal jemand vernünftig erklären kann, und was man vllt besser machen sollte, würde mich auch interessieren. Danke
ich würde gerne Lifestats für unsere Gameserver (BF1942 && CS:S) coden, aber ich steig da nicht so wirklich durch.
Für BF1942 habe ich zwar was fertiges gefunden, aber ich möchte keinen Code von anderen einbauen, sondern mir ist es wichtiger zu verstehen, was passiert. Wie geht man generell vor, das ich mit dem Server "reden" muss, ist mir wohl klar, aber wie spreche ich seine Sprache?
Ich nehm als Beispiel mal dieses BF Script, vllt könnt Ihr mir das erklären bzw mich verbessern
PHP-Code:
$socket = fsockopen("udp://$ip", $port, &$errno, &$errstr);
/* Ein Socket ist, soweit ich weiss die Kombination aus IP und Port, wenn
das Socket angelegt werden konnte, heisst das soviel wie: Server ist über
UDP mit der IP und dem Port erreichbar, oder?*/
PHP-Code:
@socket_set_timeout($socket, 2);
/* Setzt den Timeout Wert, aber wofür genau? Wenn es doch zum Timeout
kommt, wäre $socket doch vorher schon false, oder?*/
![Smilie](https://www.php-resource.de/forum/core/images/smilies/smile.gif)
PHP-Code:
fwrite ($socket, "\xff\\status\\") or die("Socket zum konnte nicht angelegt werden");
/* hääh? fwrite bei Files kann ich ja noch nachvollziehen, aber was passiert
hier genau? und was soll "\xff\\status\\" bedeuten?*/
PHP-Code:
$header = fgets($socket, 2);
// Ab hier bekomme ich wirklich Daten zum Auswerten
if (!$header) {
// Server nicht erreichbar???
} else {
while ($var) {
$str = fgets($socket, 2); // Warum schon wieder, ist doch das gleiche wie beim $header?
$tmpdata .= $str;
if ( preg_match("/queryid(.*)\.1/i", $tmpdata)) {
$var = false;
}
}
}
// in $tmpdata habe ich nun tasächlich Daten zum Auswerten
![Smilie](https://www.php-resource.de/forum/core/images/smilies/smile.gif)
Kommentar