Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   THTTPClient timeout problem macOS (https://www.delphipraxis.net/211364-thttpclient-timeout-problem-macos.html)

softtouch 5. Sep 2022 07:52

THTTPClient timeout problem macOS
 
Ich nutze im Moment THTTPClient. Ich setze responsetimeout auf 10000.
Ein Timeout sollte ja nur dann getriggert werden, wenn 10 Sekunden lang keinerlei Daten mehr empfangen werden. Das klappt auch so unter Windows.
Jedoch unter macOS, der Timeout wird nach 10 Sekunden getriggert, obwohl Daten empfangen werden, was natürlich falsch ist.
Mit anderen Worten, der Timeout wird unter macOS getriggert wenn der Timeout Wert abgelaufen ist, und nicht wenn keine Daten empfangen werden. Setze ich den Timeout auf 20 Sekunden, wird die Datenübertragung dadurch auch nach 30 Sekunden einfach mit einem Timeout abgebrochen, egal ob Daten ankommen oder nicht.
Kennt jemand dieses Problem?

Uwe Raabe 5. Sep 2022 09:00

AW: THTTPClient timeout problem macOS
 
Wie lange dauert denn die gesamte Übertragung?

softtouch 5. Sep 2022 10:54

AW: THTTPClient timeout problem macOS
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1511238)
Wie lange dauert denn die gesamte Übertragung?

Das hängt natürlich von der Grösse ab. Der letzte Test welchen ich gemacht hatte, dauerte ca. 25 Sekunden. Auf dem PC kein Problem mit timeout 10 Sekunden, auf dem Mac wurde die Verbindung nach genau 10 Sekunden mit einem timeout abgebrochen.
Damit war mir klar das der timeout auf dem PC einwandfrei funktioniert, aber auf dem mac nicht. Der scheint den timeout als absolute Zeit für den Download zu interpretieren. Es ist im Falle des Mac irgendwie gar kein richtiger timeout, sondern eher die Zeit die der Download maximal dauern darf, was ein Bug wäre.
Mit Indy gibt es diesbezüglich keinerlei Probleme, timeout klappt wie er soll, ich möchte aber Indy nicht verwenden da ich alles ohne OpenSSL DLL's/dylibs machen möchte.

Uwe Raabe 5. Sep 2022 11:43

AW: THTTPClient timeout problem macOS
 
Delphi reicht den Timeout auch nur an den NSMutableURLRequest weiter (timeoutinterval) und wartet dann in einer Schleife auf das Done.
Delphi-Quellcode:
    LRequest.FDataTask.resume;
    while not LResponse.FDone do
      InternalWaitMessage(0.01);
Insofern müsste der Bug bereits im MacOS vorliegen (eher unwahrscheinlich).

Du kannst ja einen Bugreport in QP aufmachen. Vielleicht ergibt das ja weitere Informationen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz