Session Loop



  • Hi,

    Ich schreibe gerade an einem Klienten. Dieser Client soll sich automatisch zu einem Server verbinden, und falls dieser nicht erreichbar ist oder wären einer Session verloren geht einfach weiter probiert sich zu verbinden bis er wieder da ist.

    Sprich:
    Verbindungsversuch, Verbindungsversuch, Verbindungsversuch, verbunden, Datenaustausch, Server verloren, Verbindungsversuch, Verbindungsversuch...e.t.c.

    Ich habe bereits einen Client geschrieben, jedoch jedes mal wenn der Server wieder auftaucht (nach ein paar Stunden meistens) sendet der Client viel zu viele Connection-Requests zu dem Server. Es ist fast so als würden sich diese ganzen connect() aufrufe auf der Client-Seite aufstauen. Der Server empfängt dann eine endlose Serie an Connection-Requests (fast wie eine SYN Attacke).

    Client:

    while( /*Stop Event not Signaled*/ )
    {
       if( socket )
          closesocket();
    
       socket = socket();
    
       if( connect() != SOCKET_ERROR )
       {
         WSAEventSelect();
         WSAWaitForMultipleObjects(); //loop whenever connection is closed
       }
    }
    

    Hat wer eine Ahnung was und warum bei dem Client in Abwesenheit des Server passiert dass das oben beschriebene Problem auslösen könnte?

    Arbeite mit WinXP, Visual Studio 2010.


Anmelden zum Antworten