Boost :: Asio Lese- / Schreiboperationen
-
22-07-2019 - |
Frage
Was ist der Unterschied zwischen boost::asio::ip::tcp::socket
des read_some
/ write_some
Member-Funktionen aufrufen und den boost::asio::read
/ boost::asio::write
freien Funktionen aufrufen?
Genauer gesagt:
Gibt es einen Nutzen übereinander zu verwenden?
Warum beide sind in der Bibliothek enthalten?
Lösung
read_some und write_some können, sobald auch nur ein einziges Byte zurückgeben übertragen wurde. wenn Sie als solche müssen Sie Schleife sicherstellen möchten, dass Sie alle Daten bekommen - aber das kann sein, was Sie wollen
.Die freien Funktionen sind Wrapper um read_some und write_some und haben Bedingungen unterschiedliche Terminierung am Überlast abhängig. Typischerweise warten sie auf den Puffer voll (oder ein Fehler auftritt, oder in einigen Überlastungen eine explizite Beendigungsbedingung auftritt) übertragen wird