Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Verbindungsaufbau abbrechen bei Socket\Client (https://www.delphipraxis.net/61579-verbindungsaufbau-abbrechen-bei-socket%5Cclient.html)

Alcatraz 23. Jan 2006 13:28


Verbindungsaufbau abbrechen bei Socket\Client
 
Hi!

Ich bin dabei einen Instant Messenger zu programmieren.
Wenn nun der Benutzer sich verbinden will, alles schön und gut... Klappt alles.
Aber wenn der Server nicht erreichbar ist, passiert eine Zeit lang mal garnix und anschliessend kommt 'ne Fehlermeldung.
Wie kann ich nun machen, dass der Benutzer während der Verbindungsaufbaus die Verbindung trennen kann.
Client.Close;
und
Client.Active:=False;
funktionnieren nicht.

Kann mir jemand weiter helfen?

mfG;

aslmx 20. Sep 2009 12:31

Re: Verbindungsaufbau abbrechen bei Socket\Client
 
Hi,

ich bin eigentlich kein Fan von Exhumation, aber ich habe zur Zeit das selbe Problem.

Wenn der Server nicht innerhalb von 2sek antwortet ist die Wahrscheinlichkeit das er komplett nicht erreichbar ist bei ca. 99,999%, dann soll die Anwendung nicht auf das Timeout (20, 30sek?) warten.

Wie löse ich das geschickt?

Habe es wie der Threadersteller schon mit .Active = False versucht.

Ebenso versuchte ich es mit

clientsocket.Socket.Disconnect(SocketID)

wobei SocketID das handle des Sockets darstellen soll, aber irgendwie tuts das auch nicht.

Irgendwelche Vorschläge? eine längere Google Session brachte mir leider nicht den gewünschten Erfolg :(

danke schonmal!

Klaus01 20. Sep 2009 12:53

Re: Verbindungsaufbau abbrechen bei Socket\Client
 
Hallo,

Du hast leider nicht geschrieben welche Indy Version Du benutzt.

Unter Indy 10:

Delphi-Quellcode:
tcpClient.IOHandler.CloseGracefully;
Grüße
Klaus

Zacherl 20. Sep 2009 15:29

Re: Verbindungsaufbau abbrechen bei Socket\Client
 
Ich nehme mal an, dass er die Sockets benutzt, wie er auch geschrieben hat 8) Die Frage könnte man dahingehend umformulieren, dass er einen Befehl sucht, mit dem er das Connection Timeout für ein Socket selbst setzen kann.

aslmx 20. Sep 2009 19:34

Re: Verbindungsaufbau abbrechen bei Socket\Client
 
Zitat:

Zitat von Zacherl
Ich nehme mal an, dass er die Sockets benutzt, wie er auch geschrieben hat 8)

So ist es. Ich nutze das TClientSocket.

Zitat:

Zitat von Zacherl
Die Frage könnte man dahingehend umformulieren, dass er einen Befehl sucht, mit dem er das Connection Timeout für ein Socket selbst setzen kann.

Das wäre auch eine Option.

Vielleicht so, dass OnDisconnect mit ausgelöst würde.

Danke euch schonmal!

BackOrifice 20. Sep 2009 21:28

Re: Verbindungsaufbau abbrechen bei Socket\Client
 
[Halbwissen]
Ich habe damals ähnliche Probleme mit der Verbindung zu einem SQL Server gehabt. Ich möchte mal behaubten, dass dies nur durch einen Thread gelöst werden kann. Denn während du die Verbindung startest (per Connected := True oder wie auch immer), steht alles still.


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