Server & Client (Winsock) PROBLEM!



  • Folgendes:

    Mein Programm wartet (listen(sConnect, SOMAXCONN);) seit dem Moment als es aktiviert wurde auf eine Verbindung mit dem Client (Event: OnActivate).
    Mein Client, habe ich so programmiert , dass er sich automatisch mit dem Server verbindet, wenn er gestartet wird.

    Mein Problem:

    Wenn mein Client also mit meinem Server verbunden ist (er also online ist), würde ich darüber gerne informiert werden...also:

    if(sConnect = accept(sListen, usw...))
    {
      //falls online
      MessageBox::Show("Connection found");
    }
    else
    {
      //falls offline
      MessageBox::Show("Client offline");
    }
    

    Nur wenn ich das so in meinen Quelltext schreibe (in mein Form1_Activated-Event)
    hängt sich mein Programm auf, keine Rückmeldung! (beim Debuggen findet Visual Studio jedoch keinen Fehler?!)

    Meine Frage:

    Wo muss ich diese Bedingung denn nun einfügen, damit mein Server kontrolliert, ob er verbunden ist oder nicht?

    Danke für eure Hilfe...

    mfg, Julian 👍



  • Du musst einen extra Thread machen, denn accept(..) ist blockierend.

    Alternativ kannst Du auch ein CAsyncSocket dazu benutzen: http://msdn.microsoft.com/en-us/library/3d46645f(VS.80).aspx



  • Danke für deine Antwort...jetzt werde ich mich dann wohl erst mal mit dem Threading beschäftigen müssen!


Anmelden zum Antworten