Есть ли элегантный способ соединить два устройства / потоки в Asio? - PullRequest
3 голосов
/ 09 августа 2009

С учетом двух потоковых объектов ввода-вывода в Asio , каков самый простой способ пересылки данных с одного устройства на другое в обоих направлениях? Может ли это быть сделано с помощью boost :: iostreams :: комбинации или boost :: iostreams: copy возможно? Или ручной подход лучше - ждать данных на каждом конце и затем записывать их в другой поток? Другими словами, как использовать Boost и Asio для создания минимального количества кода?

Примером приложения будет потоковая передача между последовательным портом и сокетом TCP в соответствии с запросом в этом вопросе .

1 Ответ

4 голосов
/ 09 августа 2009

Со стандартными потоками C ++ вы можете сделать следующее, разве вы не можете сделать что-то подобное с Asio?

// Read all data from in and write to out.
void forward_data( std::istream& in, std::ostream& out )
{
  out << in.rdbuf();
}
...