Nach dem Lesen anderer Stack Overflow-Einträge und der boost::asio
Dokumentation habe ich bestätigt, dass es keine synchronen ASIO-Lese-/Schreibaufrufe gibt, die auch einen einfach zu verwendenden Timeout als Parameter für den Aufruf bereitstellen.
Ich bin gerade dabei, eine Linux-Socket-Anwendung der alten Schule mit select(2)-Aufrufen zu konvertieren, die Timeouts verwendet, und ich muss mehr oder weniger das Gleiche tun.
Wie kann man dies am besten in boost::asio
? Wenn ich mir die asio-Dokumentation ansehe, gibt es viele verwirrende Beispiele für verschiedene Dinge, die mit Timern zu tun haben, aber ich bin ziemlich verwirrt.
Ich würde gerne ein einfach zu lesendes Beispiel dafür sehen: Von einem Socket lesen, aber maximal X Sekunden warten. Danach kehrt die Funktion entweder mit nichts zurück oder mit dem, was sie vor Ablauf der Zeitspanne vom Socket lesen konnte.