Есть ли элегантный способ соединить два устройства/потока в Asio?
-
12-09-2019 - |
Вопрос
Учитывая два потокоориентированных объекта ввода-вывода в Азио, как проще всего переслать данные с одного устройства на другое в обоих направлениях?Можно ли это сделать с boost::iostreams::комбинация или boost::iostreams:копировать возможно?Или лучше использовать ручной подход — ждать данных на каждом конце, а затем записывать их в другой поток?Другими словами, как можно использовать Способствовать росту и Азио создать минимальное количество кода?
Примером приложения может быть потоковая передача между последовательным портом и TCP-сокетом, как указано в разделе этот вопрос.
Решение
Со стандартными потоками C++ вы можете делать следующее. Разве вы не можете сделать что-то подобное с Asio?
// Read all data from in and write to out.
void forward_data( std::istream& in, std::ostream& out )
{
out << in.rdbuf();
}
Не связан с StackOverflow