Client-Verbindungen mit epoll
-
25-09-2019 - |
Frage
Ich programmiere eine Anwendung (Client / Server) in C ++ für Linux mit epoll y pThreads aber ich weiß nicht, wie die connect()
Anrufe bearbeiten, um eine neue Verbindung in der Liste Descriptor anhängen, wenn eine Schleife mit epoll_wait()
läuft (Flankengetriggertes) Wie kann ich es tun? ... ich könnte einen Dummy-Dateideskriptor zu verwenden, um ein Ereignis und scape von Warte ausgelöst ?, oder einen einfachen Anruf connect()
könnte das Ereignis ausgelöst ?? ...
Sorry für mein schlechtes Englisch ...
Lösung
Ja, können Sie eine andere Dateideskriptors verwenden, die für das Aufwachen Ihre epoll_wait()
Schleife gerade ist. Verwenden Sie pipe()
den Dateideskriptor zu erstellen. Fügen Sie das Lesen Ende des Rohrs zu Ihrer epoll
Liste und schreiben ein einzelnes Byte zu dem Schreibende, wenn Sie wollen, es aufzuwecken. Die Leseseite kann genau das Byte lesen und es verwerfen.