Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi OnClientDisconnect (https://www.delphipraxis.net/30322-onclientdisconnect.html)

Pseudemys Nelsoni 23. Sep 2004 14:34


OnClientDisconnect
 
Hi,

ich habe nun ein anderes problem und zwar trenne ich eine Client-verbindung (TServerSocket) im OnClientRead:

Delphi-Quellcode:
self.Socket.Disconnect(SocketHandle);
nun müsste ja eigentlich dann danach auch "OnClientDisconnect" ausgeführt werden oder? wird es aber nicht, selbst kein "Showmessage('blah');" wird ausgeführt.... wieso wird das event nicht ausgelöst?

KrasserChecker 23. Sep 2004 15:07

Re: OnClientDisconnect
 
Weil - wenn ich mich nicht ganz irre - (und wie der Ereignisname schon andeutet) darauf reagiert wird, das die Verbindung vom Client aus geschlossen wird. Das ist bei dir aber nicht der Fall.
Du muss das Ereignis also selbst aufrufen. :zwinker:

alcaeus 23. Sep 2004 15:08

Re: OnClientDisconnect
 
Hi Pseudemys Nelsoni,

Du könntest auch den Disconnect vom Client erzwingen lassen, in dem du ihm einen Befehl oder etwas schickst, und er beim Erhalten des Befehls Active des ClientSockets auf False setzt. Anschließend wird das Ereignis sicher ausgelöst.

Greetz
alcaeus

Pseudemys Nelsoni 23. Sep 2004 15:19

Re: OnClientDisconnect
 
Zitat:

Weil - wenn ich mich nicht ganz irre - (und wie der Ereignisname schon andeutet) darauf reagiert wird, das die Verbindung vom Client aus geschlossen wird. Das ist bei dir aber nicht der Fall.
Du muss das Ereignis also selbst aufrufen.
hm, wenn ich den client aber disconnecte, kann ich OnClientDisconnect doch aber gar nichtmehr selbst aufrufen weil ich den socket (der ja schon dann beendet ist) ja nichtmehr an die procedure übergeben kann, oder?

Zitat:

Du könntest auch den Disconnect vom Client erzwingen lassen, in dem du ihm einen Befehl oder etwas schickst, und er beim Erhalten des Befehls Active des ClientSockets auf False setzt. Anschließend wird das Ereignis sicher ausgelöst.
geht nicht, den client kann ich nicht programmieren ;) ich mach nur den server für die clients

KrasserChecker 23. Sep 2004 15:24

Re: OnClientDisconnect
 
Zitat:

hm, wenn ich den client aber disconnecte, kann ich OnClientDisconnect doch aber gar nichtmehr selbst aufrufen weil ich den socket (der ja schon dann beendet ist) ja nichtmehr an die procedure übergeben kann, oder?
Wo ist das Problem? Einfach den Inhalt des Ereignisses in eine eigene Prozedur auslagern und entweder über das Ereignis oder eben manuell aufrufen. :gruebel:

Stevie 23. Sep 2004 15:33

Re: OnClientDisconnect
 
:warn: Der Client bekommt in diesem Fall übrigens nicht mit, dass du die Verbindung beendet hast. Erst beim nächsten Versuch, etwas zu senden, wird ein Fehler gemeldet!

alcaeus 23. Sep 2004 15:38

Re: OnClientDisconnect
 
Hi Pseudemys Nelsoni,

Zitat:

Zitat von Pseudemys Nelsoni
geht nicht, den client kann ich nicht programmieren ;) ich mach nur den server für die clients

Ist der Client ein Prog, zu dem du nicht die Sourcen hast oder wie sieht das aus. Falls das eine Teamaufgabe ist, dann solltest du eben dies als Anforderung stellen.

Greetz
alcaeus


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