Y at-il une façon élégante de pont entre deux appareils / cours d'eau Asio?
-
12-09-2019 - |
Question
Etant donnés deux objets E / S orientés flux Asio , ce qui est la façon la plus simple de transmettre des données d'un dispositif à l'autre dans les deux directions? Cela pourrait-il être fait avec boost :: iostreams :: combinaison ou boost :: iostreams: copie peut-être? Ou est une approche manuelle mieux - attente des données sur chaque extrémité, puis l'écrire sur l'autre cours d'eau? En d'autres termes, comment peut-on l'effet de levier Boost et Asio pour produire une quantité minimale de code?
Un exemple d'application serait le streaming entre un port série et socket TCP comme demandé dans cette question.
La solution
Avec la norme C ++ vous flux peuvent faire ce qui suit, ne pouvez-vous faire quelque chose de similaire avec Asio?
// Read all data from in and write to out.
void forward_data( std::istream& in, std::ostream& out )
{
out << in.rdbuf();
}