Code: Alles auswählen
ttest := Now();
try
httpClient := TFPHTTPClient.Create(nil);
httpClient.IOTimeout := 2; // Timeout 2 Sek
try
url := ctgaddr;
txt := httpClient.Get(url);
except // Timeout oder Verbindungsfehler
log.Message('Telegram Bot getrennt');
end;
finally
httpClient.Free;
end;
WriteLn('Dauer ', MillisecondsBetween(Now(), ttest));
Allerdings bekomme ich bei IOTimeout von 2 oder 20 keine Verbindung, die Exception wird ausgelöst, Dauer etwa 30msec.
Bei Timeout 50 bekomme ich sporadisch Verbindung, Dauer dann um die 230msec, oder eine Exception mit Dauer 50msec.
Bei Timeout 100 oder größer bekomme ich die Verbindung, Dauer etwa 230msec, mitunter aber auch 3, 4, 5 Sekunden. Eine Exception bekomme ich nur, wenn die Verbindung wirklich unterbrochen ist, dann aber innerhalb von 3-5msec.
Ich kann hier keinen Zusammenhang zwischen den für Timeout angegebenen Wert und der realen Dauer erkennen. Eigentlich sollte Timeout doch in Sekunden sein, oder? Ich hätte gern ein Timeout nach etwa 15 Sekunden. Vordefinierter Wert für IOTimeout ist übrigens 0. Kompiliert mit FPC 3.1.1, Crosscompiler für arm-linux, läuft auf dem Raspberry unter dem aktuellen Raspbian.