Gast
#2667650
Hallo, ich würde gerne in einer Windows-Konsolenanwendung gleichzeitig über Netzwerk und einer seriellen Schnittstelle Daten empfangen. Das möchte ich in c/c++ möglichst ohne Polling hinbekommen. Für den Netzwerk-Empfang benutze ich normalerweise die select()-Funktion. Mit dieser kann ich blockierend auf Empfang von einem socket warten. Ich würde gerne der select()-Funktion mit FD_SET auch noch einen zusaetzlichen Descriptor fuer die serielle Schnittstelle übergeben. Dann würde meine select-Funktion Netzwerk- und seriellen Empfang gleichzeitig erkennen können. Geht aber unter Windows nicht, weil ich keinen File-Descriptor fuer die serielle Schnittstelle habe, denn die Schnittstelle wird mit CreateFile() geoeffnet und da gibts einen anderen Handler, der nicht kompatibel mit select ist (oder kann man da was konvertieren?). Im Moment mache ich es so, dass die select-Funktion mit einem Sekunden-Timeout aufgerufen wird. Gibt es keinen Netzwerk-Empfang, kehrt die select-Funktion nach 1 Sekunde zurück und dann wird auf seriellen Empfang gepollt. Das finde ich nicht sehr schick :-) Kann man über Netzwerk und serielle Schnittstelle gleichzeitig "pollfrei" empfangen ? Vielen Dank fuer Tipps recently