Opérations de lecture / écriture Boost :: Asio
-
22-07-2019 - |
Question
Quelle est la différence entre le read_some
/ write_some
des fonctions membres de boost :: asio :: ip :: tcp :: socket
et en appelant les fonctions libres boost :: asio :: read
/ boost :: asio :: write
?
Plus spécifiquement:
Y at-il un avantage à utiliser l’un sur l’autre?
Pourquoi les deux sont-ils inclus dans la bibliothèque?
La solution
read_some et write_some peuvent être renvoyés dès qu'un seul octet a été transféré. En tant que tel, vous devez effectuer une boucle si vous voulez avoir toutes les données, mais c'est peut-être ce que vous voulez.
Les fonctions libres encapsulent les commandes read_some et write_some et ont des conditions de terminaison différentes en fonction de la surcharge. Généralement, ils attendent que la mémoire tampon soit intégralement transférée (ou qu’une erreur se produise ou, dans certains cas, une condition d’achèvement explicite se produise).