Ich baue ein Client/Server-Modell auf, verwende aber Sockets, benannte Pipes, mit mkfifo().
Ein Client schreibt die Ausgabe in die Name Pipe, und ich lese die Eingabe in meinem Server mit:
while ((n = read(fd_in, &newChar, 1)) == 1) { /* ... */ }
Ich lese eine Figur nach der anderen, bis ich auf die beiden Figuren treffe: <'CR'><'LF'>. Ich möchte meinen Code so gestalten, dass ich, wenn ein Client nach einiger Zeit nicht mit <'CR'><'LF'> abschließt, ihn verwerfen und mit einem anderen Client fortfahren kann, andernfalls muss der nächste Client vielleicht unendlich lange warten.
Gibt es bitte eine Möglichkeit, die Ausführung von read() zu beenden? Wenn es nicht in 2 Sekunden zurückgekehrt ist, könnte ich sagen, unterbrechen Sie lesen und verwerfen Sie die zuvor gelesenen Zeichen, und beginnen Sie bitte lesen wieder?
Ich danke Ihnen für Ihre Hilfe,
Jary