【发布时间】:2018-02-26 16:31:14
【问题描述】:
我正在通过 tcp/ip 对网络内容进行编码。
具体来说,我一直在使用 boost::asio。
最近,为了简化编码,我开始使用boost::asio::ip::tcp::iostream。
它可以用于快速开发!但我不确定它是使用async_read 还是async_write。
有人知道吗?
【问题讨论】:
标签: c++ c++11 boost boost-asio
我正在通过 tcp/ip 对网络内容进行编码。
具体来说,我一直在使用 boost::asio。
最近,为了简化编码,我开始使用boost::asio::ip::tcp::iostream。
它可以用于快速开发!但我不确定它是使用async_read 还是async_write。
有人知道吗?
【问题讨论】:
标签: c++ c++11 boost boost-asio
不,它不能。这就是让它如此简单的大部分原因。
但是,您可以通过一些调整使用boost::asio::ip::tcp::iostream 强制实现全双工体验。您需要在不同的线程上运行读/写任务以实现并行性,而无需异步。
这里有一个例子 - 我认为是 - hack:
How to avoid data race with `asio::ip::tcp::iostream`?
该答案也给出了异步方法,因此这可能有助于消除恐吓因素,因为您可以简单地并排比较两种方法。
【讨论】: