VS 2010 Socket accept Befehl wartet nicht



  • Hallo zusammen,

    Ich habe ein Problem mit dem accept Befehl und nichts bei Google zu meinem Problem gefunden.

    Und zwar habe ich nach dem Tutorial http://www.c-worker.ch/tuts/wstut_op.php meinen ersten Server und Client angefangen zu programmieren.
    Ich programmiere dies in einer C++ Konsolenanwedung in Visual Studio 2010.

    In diesem Tutorial wird accept wie folgt aufgerufen:
    connectedSocket=accept(acceptSocket,NULL,NULL);

    Ich wollte allerdings alle IP-Adressen und Ports, die sich auf dem Server connecten, speichern. Also habe ich die Funktion so aufgerufen:

    SOCKADDR_IN Anfrage;
    int Anfrage_len;
    connectedSocket=accept(acceptSocket, (sockaddr
    )&Anfrage, Anfrage_len);

    Wenn ich accept so aufrufe wartet der Server allerdings nicht mehr auf eine Verbindung und geht einfach weiter im Quelltext, was dann schnell in einem Error endet.
    Nehme ich die Version aus dem Tutorial mit NULL benutze wartet der Server und alles funktioniert.

    Ich hoffe jemand hat eine Idee warum in meinem Fall das accept nicht dazu führt, dass der Server auf eine Verbindung wartet.
    Schonmal vielen Dank 😉

    Viele Grüße



  • der zeiger Anfrage_len zeigt ins nichts



  • Was gibt die Funktion denn zurück!?



  • ->

    SOCKADDR_IN Anfrage; 
    int Anfrage_len = sizeof(Anfrage);
    connectedSocket = accept(acceptSocket, (sockaddr*)&Anfrage, &Anfrage_len);
    


  • alles vorkauen - das bringts 😡



  • So funktioniert es 🙂
    Nochmal vielen Dank für die schnelle Hilfe!

    Hab jetzt auch selber verstanden wodrin mein Fehler lag 😉


Log in to reply