Thema: Delphi TCP Client empfangen

Einzelnen Beitrag anzeigen

Bamer

Registriert seit: 29. Nov 2012
Ort: Pforzheim
5 Beiträge
 
Delphi 7 Personal
 
#3

AW: TCP Client empfangen

  Alt 1. Feb 2017, 18:32
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 :/
Mathias

Geändert von Bamer ( 1. Feb 2017 um 18:46 Uhr)
  Mit Zitat antworten Zitat