![]() |
AW: TCP Verbindug und RCON
Also irgenwie lässt du dich bluffen; die Variable
Delphi-Quellcode:
ist ein Zeiger, der 4 Bytes benötigt.
bytes:TIdBytes
Es zeigt aber auf einen Speicherbereich der die Länge hat, die man zuvor mit SetLength reserviert hat.
Delphi-Quellcode:
und
SizeOf()
Delphi-Quellcode:
geben unterschiedliche Ergebnisse zurück!
Length()
Bevor du die Daten wegschickst wäre es sinnvoll sie in einer Datei zu speichern, die du dann mit einem Debugger anschauen kannst.
Delphi-Quellcode:
var
bytes : TIdBytes; rconpacket : TRconPacket; fs : TFileStream; begin ... SetLength(bytes, rconpacket.Size); Move(rconpacket, bytes[0], rconpacket.Size); // zum Debuggen die Daten in Datei schreiben fs := TFileStream.Create('RCON_Out.dat', fmCreate); fs.Writebuffer(bytes[0], Length(bytes)); fs.Free; idTCPClient1.IOHandler.Write(bytes); |
AW: TCP Verbindug und RCON
Ich habe alles nochmal geprüft, aber es geht immer noch nicht.
Mit Wiraschark habe ich mal den Traffik mit geschnitten. Dieser sieht so aus:
Code:
Wie man sehen kann, wird erst das PW "123456" gesendet.
00000000 10 00 00 00 00 00 00 00 03 00 00 00 38 35 32 32 ........ ....1234
00000010 33 31 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 56...... ........ 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000001B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000001C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000001D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000002A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000002B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000002C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000002D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000002E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000002F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000003A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000003B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000003C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000003D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000003E0 00 00 00 00 00 00 00 00 00 ........ . 00000000 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ...... 0000000E 0a 00 00 00 ff ff ff ff 02 00 00 00 00 00 ........ ...... 000003E9 10 00 00 00 00 00 00 00 02 00 00 00 73 74 61 74 ........ ....stat 000003F9 75 73 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 us...... ........ 00000409 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000419 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000429 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000439 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000449 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000459 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000469 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000479 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000489 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000499 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004B9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004D9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000004F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000509 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000519 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000529 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000539 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000549 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000559 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000569 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000579 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000589 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000599 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000005A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000005B9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000005C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000005D9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000005E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000005F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000609 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000619 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000629 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000639 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000649 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000659 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000669 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000679 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000689 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000699 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000006A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000006B9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000006C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000006D9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000006E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000006F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000709 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000719 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000729 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000739 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000749 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000759 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000769 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000779 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000789 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 00000799 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000007A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000007B9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 000007C9 00 00 00 00 00 00 00 00 00 ........ . Der HEX Code stimmt hier nicht überein, da ich das PW oben abgeändert habe. Daraufhin erhalte ich wie auch von Steam vorgegeben 2 x 14 Bytes zurück. Danach sende ich dassn den Befehl "status", woruf ich eigentlich ja dann den Statusbericht erhalten sollte. Doch auf diesen Befehl antwortet der Server einfach nicht. |
AW: TCP Verbindug und RCON
Hi,
ich habe mit RCON und Delphi eigentlich nichts zutun... ... aber ein Blick in die Doku zeigt, dass es ein "Size" Feld gibt. Das solltest du auch nutzen. Sende doch nicht noch tausende Nullen mit, wenn es doch ein Feld gibt, welches anzeigt wie lang das Paket sein soll. Das könnte vielleicht auch erklären warum es nicht geht. Liebe Grüße, Valentin |
AW: TCP Verbindug und RCON
Ok ich habe mir nochmal ein paar Gedanken gemacht und bin auf Sachen gestoßen, die eigentlich keinen Sinn machen.
Dazu hier ein kleines Beispiel, auf das ich mich beziehen werde. Bsp.:
Delphi-Quellcode:
1. Packet Size
procedure SendCommand(Command: string);
var Packet: Array[0..19] of Byte; bytes: TIdBytes; begin Command := 'passwrd'; //SetLength(Packet, 13 + length(Command)); Packet[0] := 9 + length(Command); //Packet Size Packet[1] := 0; Packet[2] := 0; Packet[3] := 0; Packet[4] := 0; // Packet ID (Positiv) Packet[5] := 0; Packet[6] := 0; Packet[7] := 0; Packet[8] := 3; // Packet Type (SERVERDATA_AUTH) Packet[9] := 0; Packet[10] := 0; Packet[11] := 0; Packet[12] := TEncoding.Default.GetBytes('p')[0]; // Body Packet[13] := TEncoding.Default.GetBytes('a')[0]; Packet[14] := TEncoding.Default.GetBytes('s')[0]; Packet[15] := TEncoding.Default.GetBytes('s')[0]; Packet[16] := TEncoding.Default.GetBytes('w')[0]; Packet[17] := TEncoding.Default.GetBytes('r')[0]; Packet[18] := TEncoding.Default.GetBytes('d')[0]; Packet[19] := 0; // Null terminator SetLength(bytes, 20); move(Packet, bytes[0], 20); Form1.idTCPClient1.IOHandler.Write(bytes); end; Diese soll die Größe des TCP Packets sein - 4 Bytes, da Packet Size nicht mitgezählt wird Zitat:
Zitat:
Warum wird dann im Beispiel von Steam einfach "length(Command) + 9" genommen? Das wäre ja dann nur Glück. Packet(0) = Command.Length + 9 'Packet Size (Integer) 2. Array of Byte zu TIdBytes Wie mir ja schon richtig geraten wurde, muss ich das Array ja als TIdBytes senden. Dazu habe ich oben in meinem Beispiel die meiner Meinung nach richtige Lösung. Warum wurde mir auf der ersten Seite das hier vorgeschlagen?
Delphi-Quellcode:
Wenn ja Packet Size immer 4 Bytes kleiner ist als die eigentliche Länge, macht es ja keinen Sinn diese zu kopieren.
SetLength(bytes, rconpacket.Size);
Move(rconpacket, bytes[0], rconpacket.Size); 3. Statisches und dynamisches Array Oben in meinem Speispiel verwende ich ein statisches Array. Doch da die länge von "Command" ja unterschiedlich ist, müsste ich ja eigentlich dein dynamisches Array benutzen, was ich oben ja als Kommentar eingetragen habe. (Natürlich habe ich "Packet: Array[0..19] of Byte;" zu "Packet: Array of Byte;" geändert. Doch wenn ich das benutze, bekomme ich ganz wirre Zeichen angezeigt, wenn ich mir den Traffic ansehe. Das heißt, dass ja dann irgendwas nicht richtig kopiert wird. Ich habe jetzt oben meine Methode benutzt, aber bekomme wie schon im Post davor keine Antwort vom Server auf den Befehl "status". Nach der abgeänderten Version sieht der Traffic jetzt so aus:
Code:
............passwrd.
............. .........................status. Packet Typ habe ich beim Befehl "status" natürlich von 3 auf 2 geändert. |
AW: TCP Verbindug und RCON
Moin moin,
soweit ich gesehen habe, schickst du nicht den "Empty String" mit. Zum einen muss der Body mit #0 terminiert werden und zum anderen muss auch der "Empty String" (#0) mitgeschickt werden - d.h. du schickst ein #0 am Ende deines Paketes zu wenig. (Jedenfalls wenn ich die Doku richtig gelesen habe) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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