BF2 Queryprotokoll
Aus SGiersch WIKI
| | Hinweis: STOP! – Dieser Artikel bzw. Abschnitt wird gerade von Stephan bearbeitet. Alles weitere auf der Artikeldiskussionsseite. |
Inhaltsverzeichnis |
Info
Auf dem sogenannten Queryport (Standardportnummer 29900) sendet der Server Informationen über sich selbst.
Mit einer speziellen Sendeanfrage wird dem Server mitgeteilt, dass er Daten über den BF2-Server senden soll.
In diesen Informationen stecken die Infos über den Server selbst, was ist es für ein Server, die Anzahl der Spieler die max. auf dem Server spielen dürfen und vieles mehr.
Zusätzlich kommen hier auch Infos über den aktuellen Spielverlauf, wer ist auf dem Server, wie viel Punkte hat dieser Spieler ...
Anfrage
Für einen Normalen BF2-Server ist die Serveranfrage im Hexformat geschrieben
FE FD 00 74 65 73 74 FF FF FF 01
Erklärung der Daten
- FE FD --> Der Datenkopf. (bleibt immer gleich)
- 00 --> Ein Trennzeichen
- 74 65 73 74 --> Eine 4-Byte-Zufallssequenz, diese Sequenz wird in den zurückgegebenen Daten wieder gegeben. Wird hier Einfach nur "Sendekennung" genannt.
Somit ist eine kleine Kontrolle möglich.
- FF --> Abfrage der Serverdaten gewünscht.
- FF --> Abfrage der Spielerdaten gewünscht.
- FF --> Abfrage der Teamdaten gewünscht.
Sollte ein Datenpaket nicht erwünscht sein, wird es mit setzten des Wertes 0x00 nicht abgefragt.
(Sieht so aus als wenn die Auswahl, welche Datenpakete erwünscht sind, ignoriert wird. Es kommen grundsätzlich alle!)
- 01 --> Endezeichen
Empfang
Paketinformationen
Standardmäßig ist die Paketgröße 1400 Byte. Sollten mehr Daten unterwegs sein, wird das im Datenpaket angekündigt.
Beispiel einen Datenpakets: (Die Zeichen ## sind nur als Optische Trennung eingefügt)
00 74 65 73 74 73 70 6C 69 74 6E 75 6D 00 80 00 ## .testsplitnum.€. 68 6F 73 74 6E 61 6D 65 00 44 50 46 20 54 65 73 ## hostname.DPF Tes 74 73 65 72 76 65 72 00 67 61 6D 65 6E 61 6D 65 ## tserver.gamename 00 62 61 74 74 6C 65 66 69 65 6C 64 32 00 67 61 ## .battlefield2.ga 6D 65 76 65 72 00 31 2E 31 2E 32 39 36 35 2D 37 ## mever.1.1.2965-7 39 37 2E 30 00 6D 61 70 6E 61 6D 65 00 57 61 72 ## 97.0.mapname.War 6C 6F 72 64 00 67 61 6D 65 74 79 70 65 00 67 70 ## lord.gametype.gp 6D 5F 63 6F 6F 70 00 67 61 6D 65 76 61 72 69 61 ## m_coop.gamevaria 6E 74 00 78 70 61 63 6B 00 ## nt.xpack.
- 00 --> Trennzeichen,
- 74 65 73 74 --> „Sendekennung“
- 73 70 6C 69 74 6E 75 6D --> Ein beschreibender Text der drei nachfolgenden Zeichen.
- 00 80 00 --> Meldung der Datenpaketanzahl und welches Paket gerade empfangen wurde.
Möglich sind:
1 Paket -> 00,80,00 2 Pakete -> 00,00,00 -> 00,81,01 3 Pakete -> 00,00,00 -> 00,01,00 -> 00,82,01 4 Pakete -> 00,00,00 -> 00,01,00 -> 00,02,01 -> 00,82,02
Beispiel:
00 74 65 73 74 73 70 6C 69 74 6E 75 6D 00 02 01 ## .testsplitnum...
Hier sind wir am Anfang des dritten Pakets und danach kommt noch ein letztes Packet.
Die Serverdaten
Getrennt werden alle Daten mit 0x00
Hier kommen jeweils abwechselnd zuerst die Bezeichnung und dann der Datenwert zur Bezeichnung.
68 6F 73 74 6E 61 6D 65 --> hostname (Ist die Beizeichnung für den Servername) 44 50 46 20 54 65 73 74 73 65 72 76 65 72 --> DPF Testserver (Der Datenwert für die vorangegangene Bezeichnung) 67 61 6D 65 6E 61 6D 65 --> gamename (Bezeichnung) 62 61 74 74 6C 65 66 69 65 6C 64 32 --> battlefield2 (Der Datenwert für die vorangegangene Bezeichnung)
usw.
Die Spielerdaten
Die Teamdaten
Die Teamdaten werden nicht vollständig übertragen und sind so nicht zu gebrauchen.
