-
Forum: Netzwerke
Delphi
by BadenPower,
28. Feb 2015
Wow, da hat ja die Unit SouceQuery.pas, welche nur die Hilfsfunktionen enhält, schon fast so viele Zeilen Code, wie mein komplett funktionsfähiges Programm mit allen Parametereinstellmöglichkeiten für die Abfragen.
Da wundert es mich nicht mehr, dass viele Programme, welche nur ein Fenster haben zum Teil und das ohne Daten geladen zu haben, bereits 50kb im Hauptspeicher belegen, statt den...
-
Forum: Netzwerke
Delphi
by BadenPower,
26. Feb 2015
Das "unsigned" hat allerdings nichts damit zu tun, das sagt nur aus, ob der Wert auch ein Vorzeichen haben kann.
Da bei einer Port-Angabe es sinnlos wäre negative Werte zu ermöglichen ist der Wert als "unsigned" vorgegeben.
Dass die Bytes vertaucht sind, hätte Dir allerdings die Zuhilfename von Windows-Bordmitteln, wie z.B. dem Taschenrechner gezeigt. Dort hättest Du einfach einmal die...
-
Forum: Netzwerke
Delphi
by BadenPower,
26. Feb 2015
Du täuschst dich nicht.
Oder als direkte Übersetzung aus dem PHP-Code so:
Move(lBuffer, lResponseServer.Fourth, SizeOf(lResponseServer.Fourth));
Inc(lPos, SizeOf(lResponseServer.Fourth));
//Move(lBuffer, lResponseServer.Port, SizeOf(lResponseServer.Port));
lResponseServer.Port := lBuffer * 256 + lBuffer;
-
Forum: Netzwerke
Delphi
by BadenPower,
26. Feb 2015
Deine Ports sind falsch.
Schau in Ruhe noch einmal das PHP-Beispiel an, welches Du selbst oben gepostet hast.
Wenn Du es dann noch nicht erkannt hast, dann gib nochmals bescheid.
-
Forum: Netzwerke
Delphi
by BadenPower,
26. Feb 2015
Und was geht denn ncht?
Die ersten 10 Server, welche ich über die Abfrage erhalte sind zum Beispiel:
84.191.11.101:2316
81.169.231.59:2313
85.214.238.7:27016
193.111.140.177:2311
146.0.42.124:2304
-
Forum: Netzwerke
Delphi
by BadenPower,
26. Feb 2015
Die Syntax aus #93 ist ok und gibt die "arma2arrowpc"-Server von "FF" = "Rest der Welt" (nicht weltweit) ordnungsgemäß zurück.
Mit der Deklaration aus #95 wirst Du allerdings an Grenzen stoßen, wenn Du es dem Benutzer ermöglichen willst, die Auslese-Parameter über Dein Programm zu ändern.
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
Wie ist denn request.Payload deklariert?
Denn wie in Post 52 kann es ja nicht sein:
TInfoRequest = packed record
RequestHeader: Integer;
PacketHeader: AnsiChar;
Payload: array of AnsiChar;
end;
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
Dein altes aus Post #88
request.Payload := $31;
request.Payload := $FF;
request.Payload := $30;
request.Payload := $2E;
request.Payload := $30;
request.Payload := $2E;
request.Payload := $30;
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
lRequest.Payload := $3A;
lRequest.Payload := $00;
nach dem Doppelpunkt fehlt noch die 0 für den Port.
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
Diese Zeit ist nur 5 Sekunden, wenn der Server oder Port nicht erreichbar ist. Ist er Erreichbar, dann rutscht es in Milisekunden durch.
wenn ich den UdpSocket auf "bmNonBlocking" stelle, dann blockiert er nie. Aber ich bekomme in diesem Modus keine Daten.
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
Warum hast Du nicht meine Werte übernommen.
Also
form4.udp1.WaitForData(5000);
if (SecondsBetween(Now(),CheckTime) <= 1) then
begin
...
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
Ach da war ja noch etwas.
procedure TForm4.Get_A2S_INFO;
var
Request: TInfoRequest;
Response: TInfoResponse;
Buffer: TBufferArray;
I: Integer;
CheckTime: TDateTime;
-
Forum: Netzwerke
Delphi
by BadenPower,
25. Feb 2015
Es ist richtig, dass es Valve so hinterlegt hat.
Ist es aber auch richtig?
Ich wage daran zu zweifeln, da dort die "Steam Application ID" ausgegeben werden soll und diese beginnen bei 0. Und bei diesem Gameserver mit diesem Port, den uns Flodding genannt hat ist die AppId laut Steamdb.info nun mal 33930 und nicht -31606.
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
Das habe ich auch gesehen und mich eigentlich gewundert.
Aber ich habe auch die Ausgabe von dem folgenden Link angeschaut:
http://last-templers.de/a2epoch/query/query.php
Dort wird die ID auch positiv als 33930 dargestellt.
Und eine negative ID macht in meinen Augen doch auch keinen Sinn. Daher bin ich eigentlich der Meinung, dass es ein "Word" sein müsste.
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
Nein, dass liegt daran, dass der Typ von ID im Record TInfoResponse falsch deklariert ist.
Statt "SmallInt" muss der Typ von Id "Word" sein.
Dann ist nicht nur die Zahl positiv, sondern der Wert stimmt auch und ist dann 33930.
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
Nicht das END hinter SendBuf() sondern ganz ans Ende.
begin
request.RequestHeader := 'ÿÿÿÿ';
request.PacketHeader := 'T';
request.Payload := 'Source Engine Query'; // Von mir aus auch mit einer Konstante oder einem Ressourcestring
request.Payload := #00;
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
In der Button2Click fehlt die Abfrage ob Connected.
und in der GetInfo
if (form4.udp1.Connected) then
form4.Udp1.SendBuf(request, SizeOf(TInfoRequest));
form4.Udp1.ReceiveBuf(buffer, SizeOf(buffer));
i := 0;
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
Hochladen wäre die geschicktere Variante.
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
Zeig' mal her, was Du bereits geschafft hast, damit wir einmal einen Überblick erhalten.
Dann sind notwendige Änderungen und Verbesserungsvorschläge leichter zu beschreiben.
So ist es manchmal mehr oder weniger ein Rätselraten.
-
Forum: Netzwerke
Delphi
by BadenPower,
24. Feb 2015
Prüfe nach udp.Active:= true; (besser wäre udp.Open;), ob die Verbindung überhaupt hergestellt werden konnte.
udp.Open;
if (udp.Connected) then
begin
x:= $FF;
x:= $FF;
//...
-
Forum: Netzwerke
Delphi
by BadenPower,
22. Feb 2015
Ich ICH ich
Man sieht sofort den Unterschied, da es in der Muttersprache geschrieben steht.
"8A84" und "848A"
Man sieht sofort den Unterschied, wenn man sich mit der Sprache beschäftigt, also hier sich die hexadezimale Schreibweise zu Eigen gemacht hat.
Und diese Schreibweise kommt in der Computerwelt an jeder Stelle um die Ecke.
-
Forum: Netzwerke
Delphi
by BadenPower,
22. Feb 2015
Vielleicht fällt es ihm jetzt auf, wenn er das 2. mal mit der Nase darauf gestoßen wird.
-
Forum: Netzwerke
Delphi
by BadenPower,
22. Feb 2015
Das sagt mir, dass Du nie versucht hast 33930 in ein Hex umzuwandeln, denn dann hättest Du gesehen , dass 33930 ToHex-> 848A ist.
Na, fällt Dir etwas auf?
-
Forum: Netzwerke
Delphi
by BadenPower,
18. Feb 2015
Hast Du Dir diese Seite schon angesehen, welche Neutral General bereits gepostet hat?
https://developer.valvesoftware.com/wiki/Server_queries
-
Forum: Netzwerke
Delphi
by BadenPower,
18. Feb 2015
Da hast Du doch alles, was Du benötigst.
Jetzt musst Du halt nur noch den PHP-Code in Delphi nachbilden.
Also einfacher kann man es nun wirklich nicht haben.