Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Indy 10 TIdHTTP Port beibehalten (https://www.delphipraxis.net/182290-indy-10-tidhttp-port-beibehalten.html)

Gruber_Hans_12345 15. Okt 2014 16:47

Indy 10 TIdHTTP Port beibehalten
 
Gibt es eine möglichkeit beim TIdHTTP Client den AUSGEHENDEN Port beizubehalten?

Ich möchte jedesmal eine Verbindung zum Port 80, aber der ausgehende Port sollte immer der bleiben den er beim ersten mal gehabt hat.

Gibt es dazu eine Einstellung... auf den ersten und zweiten Blick leider nichts gefunden...

Gruber_Hans_12345 15. Okt 2014 20:18

AW: Indy 10 TIdHTTP Port beibehalten
 
Hmmmmm hab grad geschaut ... das sollte ja eh normal funktionieren

ABER

Die Sockets bleiben komischerweise irgendwie bestehen
mit Netstat sehe ich dann gleich ein paar Verbindungen mit dem Status WARTEND


Weil ich hätte versucht manuell nach der ersten Verbindung den Port zu ischern und bei der zweiten Verbindung den anzugegben -> da bekomme ich dan ne Exception das bereits wer horcht auf dem Port
was ja netstat zufolge ja korrekt ist

Nur die Frage bleibt warum bleiben die connections drinnen, und werden nicht wieder verwendet?

mjustin 15. Okt 2014 21:10

AW: Indy 10 TIdHTTP Port beibehalten
 
Zitat:

Zitat von Gruber_Hans_12345 (Beitrag 1276079)

Nur die Frage bleibt warum bleiben die connections drinnen, und werden nicht wieder verwendet?

Weil noch Pakete unterwegs sein könnten, hält das Betriebssystem den Port noch einige Zeit im Status TIME_WAIT.

Zitat:

The purpose of TIME-WAIT is to prevent delayed packets from one connection being accepted by a later connection.
(http://www.isi.edu/touch/pubs/infoco...nfocomm99-web/)

Wegen dieser Sicherheitsmaßnahme ist bei Systemen die sehr viele Verbindungen aufbauen, irgendwann der Vorrat an freien Ports erschöpft.

mjustin 15. Okt 2014 21:16

AW: Indy 10 TIdHTTP Port beibehalten
 
Zitat:

Zitat von Gruber_Hans_12345 (Beitrag 1276051)
Gibt es eine möglichkeit beim TIdHTTP Client den AUSGEHENDEN Port beizubehalten?

Ja, HTTP 1.1 verwenden - dann wird die TCP-Verbindung nach dem Eingang der Server-Antwort nicht geschlossen, sondern weiter verwendet. Der Port ändert sich damit nicht, solange der Client nicht auf TCP Ebene disconnected.

Gruber_Hans_12345 16. Okt 2014 06:24

AW: Indy 10 TIdHTTP Port beibehalten
 
Hallo

das ist aber dann bisschen eigenartig ....
Den ich verwende ja HTTP 1.1, und der Socket bleibt ja offen nur verwendet der gleich TidHTTP dann automatisch immer einen NEUEN Port.

Werds nun mal mit Protokoll 1.0 probieren ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.

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