Also ich habe keine Ahnung wieso eine 10 kommt
Ich habe 2 Antworten vom CSGO Server bekommen.
Einmal die Länge 1412 und einmal 260.
https://developer.valvesoftware.com/..._and_Responses <- Meinst du das mit Doku? Daraus werd ich auch nicht schlau es hat mir beim senden geholfen aber beim empfangen nicht
EDIT
Delphi-Quellcode:
procedure TForm1.sendBefehl(Befehl: string);
var Packet: Array of Byte;
Packet2: Array of Byte;
bytes: TIdBytes;
bytes2: TIdBytes;
i:integer;
i2:integer;
begin
SetLength(Packet, 13 + length(Befehl));
SetLength(bytes, 13 + length(Befehl));
for i:=1 to 11 do //Von Valve vorgegeben =0
begin
Packet[i]:=0;
end;
Packet[0] := 9 + length(Befehl); //Packet Size
Packet[8] := 2; // Packet Type (SERVEREXEC)
Packet[19] := 0; // Null terminator
for i:=12 to (length(Befehl)+11) do //Befehl in die Packet schreiben
begin
Packet[i] := TEncoding.Default.GetBytes(Befehl[(i-11)])[0];
end;
move(Packet[0], bytes[0], 13 + length(Befehl)); //Packet in TIdBytes zum versenden
idTCPClient1.IOHandler.Write(bytes); //senden
idTCPClient1.IOHandler.ReadBytes(bytes2,i2,true);
Memo1.Lines.Add(IntToStr(High(bytes2)));
move(bytes2[0], packet2[0], High(bytes2));
for i2:=0 to High(bytes2) do
begin
Memo1.Lines.Add(IntToStr(packet2[i]));
end;
//Memo1.Lines.Add (idTCPClient1.IOHandler.ReadLn());
end;
wollte mal testen wenn ich Bytes benutze da sollte ja eig mehr kommen, aber leider crasht dann die exe :/