Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Csocket schließen, wenn Windows Programm beendet

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.03.2003, 13:38 Uhr
~JoeMill
Gast


Hallo,

mein Problem:
ich habe zwei Anwendungen, einen Server und einen Client (verblüffend *g*).
Der Server läuft ständig im Hintergrund(nur Systray-Icon Dialogfenster ist versteckt "SW_HIDE") auf einem PC.
Wenn sich ein Client zum ihm verbindet, nimmt er diesen in eine Liste auf, um beim beim Beenden des Servers dies den verbunden Clients mitzuteilen.
Solange ich den Server von Hand beende, sprich mit meinen von mir dafür geschriebenen Funktionen ("OnAppExit()" - ist die Funktion die durch den Beenden-Button aufgerufen wird und "CleanUp()" - ist die Funktion die aufräumt), wird das auch alles gemacht. Nur wenn ich jetzt Windows herrunterfahre und Windows somit das Programm beendet wird diese Funktion "CleanUp()" nicht aufgerufen. Die Funktion CleanUp() habe ich schon an den unterschiedlichsten Stellen eingebunden ( bei OnDestroy(), bei DestroyWindow(), bei PostNcDestroy() ) nichts hat geholfen.
Welche Nachricht schickt Windows an mein Programm, wenn es ihm mitteilt, dass es sich beenden soll?
Oder wenn es sowas nicht gibt, wie kann ich auf Client-Seite feststellen, dass der Rechner zu dem er sich verbunden glaubt nicht mehr da ist.

thx
JoeMill
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.03.2003, 13:45 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo:

WM_ENDSESSION:
The WM_ENDSESSION message is sent to an application after the system processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the session is ending.

A window receives this message through its WindowProc function.

Auf Deutsch: Sobald Windows beendet bzw der Benutzer abgemeldet wird, sollte das Programm die Nachricht WM_ENDSESSION erhalten...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.03.2003, 16:42 Uhr
~JoeMill
Gast


Danke das hat funktioniert.

Noch eine andere Frage:

Ich benutze WindowSockets. Zum Senden meiner Daten (ein von mir erstelltes Objekt) habe ich ein Socketfile erstellt und je 2 CArchive's daran gebunden. Ein ArchiveIn und ein ArchiveOut, ist nachdem Beispiel ChatSrv aus der MSDN.
Das Problem ist jetzt, wenn eine von beiden Seiten abstürzt (Rechner oder Programm), und die andrere Seite nun versucht eine Nachricht zu senden, über die Serialize - Funktion des Archivs, kommt eine Fehlermeldung, das man versucht hat hinter eine unbekannte Datei zu schreiben.
Wie kann ich vor dem Senden einer Nachricht feststellen, ob die Verbindung noch steht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: