Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   THttpClient Windows OK, macOS timeout (https://www.delphipraxis.net/211359-thttpclient-windows-ok-macos-timeout.html)

softtouch 3. Sep 2022 14:18

THttpClient Windows OK, macOS timeout
 
Ich habe ein komisches Problem.

Ich nutzte THttpClient und downloade mit .get eine Datei (ca. 78MB) in einen Stream wie im folgenden Beispielcode:

Delphi-Quellcode:
http:=THttpClient.create;
http.get(theurl,st);
http.free;
Kein Problem unter Windows, wenn ich jedoch diesen Dreizeiler für macOS kompiliere und auf dem mac starte, gibt es manchmal nach 2MB, manchmal nach 50MB stets einen timeout obwohl der Datenfluss nicht unterbrochen wurde.

Kenn das jemand oder hat eine Idee warum der Code auf Windows einwandfrei läuft, aber auf dem mac immer zu einem timeout führt?

Mac und PC sind im selben lan hier.

Delphi.Narium 3. Sep 2022 16:06

AW: THttpClient Windows OK, macOS timeout
 
Weil der Windowsrechner 'ne bessere / schnellere Netzverbindung hat als der Mac?

THTTP hat durchaus Attribute, mit denen man das Timeout verändern kann, eventuell sind da ja, abhängig vom Betriebssystem, unterschiedliche Defaultwerte vorgegeben?

Delphi-Quellcode:
http:=THttpClient.create;
http.ReadTimeOut := 60000; // Oder anderer, sinnvoller Wert in Millisekunden.
http.get(theurl,st);
http.free;

softtouch 3. Sep 2022 18:18

AW: THttpClient Windows OK, macOS timeout
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1511194)
Weil der Windowsrechner 'ne bessere / schnellere Netzverbindung hat als der Mac?

THTTP hat durchaus Attribute, mit denen man das Timeout verändern kann, eventuell sind da ja, abhängig vom Betriebssystem, unterschiedliche Defaultwerte vorgegeben?

Delphi-Quellcode:
http:=THttpClient.create;
http.ReadTimeOut := 60000; // Oder anderer, sinnvoller Wert in Millisekunden.
http.get(theurl,st);
http.free;

Beide Computer haben die gleicher Verbindungsgeschwindigkeit, daran liegt es nicht. Wenn ich Indy nutze, geht es einwandfrei.
Auf dem PC wird der timeout erst "aktive", wenn keine Daten mehr kommen, was richtig ist. Setze ich den timeout auf 10000, und 10 sSekunden kommt nichts mehr, wird der timeout getriggert.
Auf dem mac jedoch nicht. Setze ich den timeout auf 30000, wird ein timeout nach 30 Sekunden getriggert, egal ob Daten kommen oder nicht. Das muss ein Bug sein, denke ich.

Delphi.Narium 3. Sep 2022 18:53

AW: THttpClient Windows OK, macOS timeout
 
Wielange braucht der PC zum Laden der Daten? (ungefähr)

Nimm zum Test den Wert mal 2 oder mal 3 und setzte ihn als TimeOut.

Wird's dann besser auf dem Mac?

Frei nach dem Motto: Setze den TimeOutwert so hoch, dass das Laden garantiert weniger Zeit benötigt.

Naja, und dann heißt es, die wirkliche Ursache des Problemes zu finden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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