هل هناك طريقة أنيقة لسد جهازين / تيارات في آسيو؟

StackOverflow https://stackoverflow.com/questions/1249750

سؤال

نظرا اثنين من كائنات I / O موجهة نحو الدفق في في, ، ما هي أبسط طريقة لإعادة توجيه البيانات من جهاز إلى الآخر في كلا الاتجاهين؟ هل يمكن القيام بذلك دفعة :: مزيج IOSTREAMS :: أو دفعة :: 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();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top