Forum: Programmieren allgemein
Delphi
by sx2008,
15. Jul 2013
Also irgenwie lässt du dich bluffen; die Variable bytes:TIdBytes ist ein Zeiger, der 4 Bytes benötigt.
Es zeigt aber auf einen Speicherbereich der die Länge hat, die man zuvor mit SetLength reserviert hat.
SizeOf() und Length() geben unterschiedliche Ergebnisse zurück!
Bevor du die Daten wegschickst wäre es sinnvoll sie in einer Datei zu speichern, die du dann mit einem Debugger anschauen...
Forum: Programmieren allgemein
Delphi
by sx2008,
10. Jul 2013
Entscheidend ist was hinten rauskommt.
Aber du "schlamperst" jetzt auch.
Wer sagt denn, dass data = 0 ist?
Es hängt vom Zufall ab.
data := length(Command) + 9;
data := 0; // *
data := 0; // *
data := 0; // *
data := 0;
Forum: Programmieren allgemein
Delphi
by sx2008,
9. Jul 2013
Weil die "schlampern" und nur das niederwertigste Byte befüllen anstatt - usw.
TRconPacket=record
Size :integer;
ReqID :integer;
PacketType :Integer; // fehlt noch
data :array of byte;
end;
Forum: Programmieren allgemein
Delphi
by sx2008,
8. Jul 2013
Du schickst keine gültigen RCON - Daten; siehe https://developer.valvesoftware.com/wiki/Source_RCON_Protocol#Basic_Packet_Structure .
Das Feld Size ist bei dir gleich -1 ($FFFFFFFF), erlaubt sind aber nur Werte zwischen 10 und 4096.
Also trennt der Server die Verbindung.