tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
640
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Dipsi Dipsi ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    98
    Hallo an alle.

    Ich schreibe eine Client/Server Applikation wo mehrere Clients auf den gleichen Server verbinden können.

    Jetzt will ich das ganze mit Threads lösen.
    Das Programm kann zugleich Client als auch Server sein.
    Wenn ich das Programm im Server Modus starte, erstelle ich ein Thread und in diesem
    ein Objekt von CAsyncSocket und setze es auf Listen().

    Problem:
    Wenn ich das Programm schliessen will, will ich zuerst das socket im Thread schliessen, dann das Thread und zum Schluss das ganze Programm.

    In OnCancel() lösche ich das Thread mit "delete m_pServerThread".
    Das funktioniert auch gut (gibt keine Memory Leaks mehr), aber nur wenn ich kein Objekt von CAsyncSocket erstelle (sprich kein Server der auf Clients wartet).

    Wenn ich das Programm ausführe und im Thread den Server starte (Listen) kommt beim schliessen folgende Meldung:
    sockcore.cpp - Linie 541
    PHP-Code:
    ASSERT(CAsyncSocket::LookupHandle(hSocketFALSE) != NULL); 
    Ich glaube, diese Meldung kommt, weil ich den Server nicht schliesse.
    Habe schon versucht im Destruktor vom Thread den Server mit Close() zu beenden.

    Was ist falsch?

    Vielen Dank.
    Geändert von Dipsi (02.03.07 um 22:50 Uhr)
     

  2. #2
    Frarr Frarr ist offline Mitglied
    Registriert seit
    Feb 2004
    Ort
    Braunschweig
    Beiträge
    22
    Hi,
    du solltest den Socket unbedingt korrekt beenden, könntest mal versuchen, vor dem "close()" ein "ShutDown(2)" durchzuführen.

    MfG
     

  3. #3
    Dipsi Dipsi ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    98
    Hallo

    Also das mit ShutDown(2) haut auch nicht hin.
    Beim debuggen führt er ShutDown(2) aus und beim Close() haltet er an.
    Auch wenn ich das Socket vor dem Thread schliesse kommt die gleiche Meldung.
     

  4. #4
    Dipsi Dipsi ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    98
    Hat niemand eine Idee
     

Ähnliche Themen

  1. AsyncSocket
    Von udops im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 05.07.10, 08:54
  2. Socket aus anderem Thread schliessen
    Von StehtimSchilf im Forum .NET Web und Kommunikation
    Antworten: 4
    Letzter Beitrag: 25.06.10, 13:41
  3. Thread A stösst Änderung in Thread B an. Aber wie?
    Von BeaTBoxX im Forum .NET Café
    Antworten: 12
    Letzter Beitrag: 13.12.06, 11:52
  4. Antworten: 19
    Letzter Beitrag: 12.07.02, 11:13