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!