Frage

So tidhttp ich verwende Post-Anfragen zu machen. wenn ich versuche, connect was Zeit einzustellen hat es keine Wirkung. Ich noch ~ 5 Sekunden warten, bevor ich Exception. Vielen Dank im Voraus!

War es hilfreich?

Lösung

Wenn Sie einen Hostnamen verbinden statt einer IP-Adresse hat der Hostname über einen DNS-Lookup auf eine IP-gelöst werden, die Zeit in Anspruch nehmen kann, vor allem, wenn der Host-Name wird von dem O noch nicht im Cache gespeichert worden ist. Die Connect Eigenschaft berücksichtigt nicht diese Zeit.

Auch wenn Connect nicht Null ist, oder wenn TIdAntiFreeze verwendet wird, hat einen internen Indy Arbeiter-Thread zu verwenden, um die Ist-Socket-API-connect () Aufruf an den Server auszuführen. einen neuen Thread starten kann einige Zeit dauern, in diesem Moment auf dem verfügbaren Systemressourcen abhängig. Connect berücksichtigt nicht für diese Zeit, auch nicht.

Die aktuelle Implementierung von Connect gilt nur für die aktuelle Socket API connect () nennen sich selbst, nicht zu einem der zusätzlichen Arbeit erforderlich, diesen Punkt zu erreichen. Als solcher, wenn Sie einen 5 Sekunden Connect Wert gesetzt haben, ist es möglich, mehr als 5 Sekunden vor TIdTCPClient.Connect () Ausfahrten verstreichen hanve.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top