![]() |
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; |
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! |
Re: Verbindungsaufbau abbrechen bei Socket\Client
Hallo,
Du hast leider nicht geschrieben welche Indy Version Du benutzt. Unter Indy 10:
Delphi-Quellcode:
Grüße
tcpClient.IOHandler.CloseGracefully;
Klaus |
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.
|
Re: Verbindungsaufbau abbrechen bei Socket\Client
Zitat:
Zitat:
Vielleicht so, dass OnDisconnect mit ausgelöst würde. Danke euch schonmal! |
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 03:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz