C'è un modo elegante per collegare due dispositivi / flussi in Asio?
-
12-09-2019 - |
Domanda
Dati due orientati al flusso di I / O in oggetti Asio , qual è il modo più semplice per inoltrare i dati da un dispositivo all'altro in entrambe le direzioni? Questo potrebbe essere fatto con boost :: :: iostreams combinazione o boost :: iostreams: copy , forse? O è un approccio manuale meglio - in attesa dei dati su ogni estremità e poi la scrittura fuori per l'altro flusso? In altre parole, come si fa leva Boost e Asio per produrre una quantità minima di codice?
Un esempio di applicazione potrebbe essere in streaming tra una porta seriale e socket TCP come richiesto nella questa domanda .
Soluzione
Con standard C ++ ruscelli è possibile effettuare le seguenti operazioni, non si può fare qualcosa di simile con Asio?
// Read all data from in and write to out.
void forward_data( std::istream& in, std::ostream& out )
{
out << in.rdbuf();
}