Socket: accept() abbrechen?



  • Hallo Leute,

    ich habe die Funktionnen zum Erstellen eines Sockets in einem Thread liegen. Im Normalfall steuere ich den Thread über eine boolsche Variable, die bei false dazu führt, dass der Thread sich selbst beendet bzw. aus seiner Run() Funktion läuft.
    Nun habe ich in dieser Run() Funktion ein

    client=accept(server, (struct sockaddr*)&from,&fromlen);
    

    nun steht er ja in dieser Funktion und kehrt nicht zurück. Jetzt ist meine Frage, ob ich die accept() Funktion zeitlich begrenzen kann? um nach eine Zeit x wieder in den normalen Verlauf gehen kann und evtl. überprüfen kann, ob der Thread überhaupt noch als aktiv gilt.

    Wenn das nicht geht hat vielleicht jemand eine Idee, wie ich das anders lösen kann.

    Vielen Dank
    Ranger



  • Mir fällt noch was ein.

    Wenn es möglich ist zu prüfen, ob sich in der Queue überhaupt verbindungen befinden brauche ich das accept nicht rufen, bevor nichts in der Pipeline steckt. Das hätte auch den Vorteil, dass sich der Thread nicht beenden Lässt, wenn noch verbindungen anstehen. Gibt es eine solche Abfragemöglichkeit?

    Viele Grüße,
    Ranger


Anmelden zum Antworten