Boost :: Asio Lese- / Schreiboperationen

8

Was ist der Unterschied zwischen dem Aufruf von boost::asio::ip::tcp::socket s read_some / write_some Mitgliederfunktionen und dem Aufruf der boost::asio::read / boost::asio::write freien Funktionen?

Genauer gesagt:

Gibt es einen Nutzen, wenn man einen über den anderen verwendet?

Warum sind beide in der Bibliothek enthalten?

    
plastic chris 04.08.2009, 15:57
quelle

1 Antwort

13

read_some und write_some können zurückkehren, sobald auch nur ein einziges Byte übertragen wurde. Daher müssen Sie eine Schleife erstellen, wenn Sie sicherstellen möchten, dass Sie alle Daten erhalten - aber das könnte das sein, was Sie wollen.

Die freien Funktionen sind Wrapper um read_some und write_some und haben je nach Überlastung unterschiedliche Abbruchbedingungen. In der Regel warten sie darauf, dass der Puffer vollständig übertragen wird (oder ein Fehler auftritt oder bei einigen Überladungen eine explizite Beendigungsbedingung auftritt)

    
bdonlan 04.08.2009, 16:03
quelle

Tags und Links