Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy10 Connection Reset by Peer Timeout? (https://www.delphipraxis.net/97675-indy10-connection-reset-peer-timeout.html)

Gruber_Hans_12345 14. Aug 2007 12:28


Indy10 Connection Reset by Peer Timeout?
 
Hallo,

gibt es bei den Indy einen Timeout, der die Verbindung rauswirft, wenn der Peer zb das Netzwerk verloren hat?

habe da mal einen test gemacht, und es sieht so aus, als ob beim Senden ein TimeOut von ca 3 Minuten drinnen ist.

Kann man diesen Timeout runterstelln? - (habe diesen Wert niergends gefunden...)

gibt es auch einen Timeout, damit er die momentane idle Verbindung nach einer gewissen zeit trennt? (also, wenn der server nix an den client schickt?)

Code:
14.08.2007 13:05:39> Client wurde getrennt
14.08.2007 13:23:15> Send 4 Bytes
14.08.2007 13:26:25> DisConnect

14.08.2007 13:29:08> Client wurde getrennt
14.08.2007 13:29:13> Send 4 Bytes
14.08.2007 13:32:28> DisConnect

shmia 14. Aug 2007 13:35

Re: Indy10 Connection Reset by Peer Timeout?
 
Zitat:

Zitat von Gruber_Hans_12345
gibt es bei den Indy einen Timeout, der die Verbindung rauswirft, wenn der Peer zb das Netzwerk verloren hat?
habe da mal einen test gemacht, und es sieht so aus, als ob beim Senden ein TimeOut von ca 3 Minuten drinnen ist.

Das wird IMHO vom Betriebssystem geregelt. (~ 3 Minuten dauert es auch, bis unbenutzte Datenbankverbindungen geschlossen werden.)
Da gibt es sicher irgend einen Eintrag in der Registry...
Zitat:

Zitat von Gruber_Hans_12345
gibt es auch einen Timeout, damit er die momentane idle Verbindung nach einer gewissen zeit trennt? (also, wenn der server nix an den client schickt?)

Das kann ich mir nun überhaupt nicht vorstellen.
Du müsstest zu jeder Clientverbindung zusätzliche Daten speichern. Dort wäre dann auch eine TDateTime-Variable dabei, die bei jedem Empfang von Clientdaten aktualisiert wird.
Auf dem Server überprüft ein Timer (alle 10s) ob ein Client zu lange nichts "geredet" hat.
Falls ja, Now > FLastClientSend + 240 / SecsPerDay dann eine Logoff - Meldung schicken.

Gruber_Hans_12345 14. Aug 2007 13:42

Re: Indy10 Connection Reset by Peer Timeout?
 
Zitat:

Zitat von shmia
Zitat:

Zitat von Gruber_Hans_12345
gibt es bei den Indy einen Timeout, der die Verbindung rauswirft, wenn der Peer zb das Netzwerk verloren hat?
habe da mal einen test gemacht, und es sieht so aus, als ob beim Senden ein TimeOut von ca 3 Minuten drinnen ist.

Das wird IMHO vom Betriebssystem geregelt. Da gibt es sicher irgend einen Eintrag in der Registry...

Zitat:

Zitat von Gruber_Hans_12345
gibt es auch einen Timeout, damit er die momentane idle Verbindung nach einer gewissen zeit trennt? (also, wenn der server nix an den client schickt?)

Das kann ich mir nun überhaupt nicht vorstellen.
Du müsstest zu jeder Clientverbindung zusätzliche Daten speichern. Dort wäre dann auch eine TDateTime-Variable dabei, die bei jedem Empfang von Clientdaten aktualisiert wird.
Auf dem Server überprüft ein Timer (alle 10s) ob ein Client zu lange nichts "geredet" hat.
Falls ja, Now > FLastClientSend + 240 / SecsPerDay dann eine Logoff - Meldung schicken.

also meinte, wenn der client rausgeflogen ist, aber die verbindung am server noch offen ist (wenn du in meinem log oben schaust, siehst du, über 20 minuten nach dem trennen des client sich am server noch immer nix getan hat, erst wenn der server was probiert zu schicken, dann bekommt er es (nach 3 minuten) mit, das die verbindung ja eigentlich nicht mehr existent ist)

ich bin gerade dabei von FPiette mit UDP auf Indy mit TCP umzusteigen, da ich große probleme habe, das Datenpakete nicht ankommen (ist einfach ein sehr instabiles netz)
und da möchte ich es gerne so bald wie möglich wissen, wenn ein gerät abgestürzt ist


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