Winsock select()



  • Hi, ich hab eine Frage wegen der Funktion select().
    Wenn man jetzt mit select() arbeitet, dem FD_SET ein par SOCKETs hinzufügt, dann auf select() warten und wenn man dan mit "FD_ISSET" prüft, wird dan TRUE zurückgegebe, ob der SOCKET im Set ist, oder ob sich etwas auf dem Socket getan hat?
    MfG

    Pseudo-Code zur Verständigung:

    FD_SET fdSet;
    while(TRUE)
    {
    FD_ZERO(&fdSet);
    FD_SET(Socket1, &fdSet);
    FD_SET(Socket2, &fdSet);
    int lRet = select(0, &fdSet, NULL, NULL, NULL);
    if(FD_ISSET(Socket1, &fdSet)
    std::cout << "Ja 1" << endl; //Wird das ausgegeben, wenn etwas auf dem Zocket passiert, oder einfach wenn es nur im Set ist?
    else if(FD_ISSET(Socket2, &fdSet))
    std::cout << "Ja 2" << endl; //Wird das ausgegeben, wenn etwas auf dem Zocket passiert, oder einfach wenn es nur im Set ist?
    }
    


  • Das bedeutet das selbe: der Socket bleibt nur im Set, wenn das gewählte Ereignis auf dem FD_SET geschehen ist.



  • Ach so ist das.
    Danke! 🙂


Anmelden zum Antworten