现在我通过以下方式接收文本:
boost::asio::streambuf buffer;
std::string text;
while(true) {
try
{
boost::asio::read_until(*m_pSocket, buffer, "END");
text = boost::asio::buffer_cast<const char*>(buffer.data());
buffer.consume(text.size());
boost::asio::write(*m_pSocket, boost::asio::buffer(text, text.size()));
std::cout << text<< std::endl;
}
catch (std::exception& e)
{
std::cerr << "Exception: " << e.what() << "\n";
break;
}
}
当收到序列“END”时,我只是将收到的文本回显给客户端。我的问题:
在我看来,将该 streambuf 转换为字符串然后使用其中的文本符号非常低效。以良好、干净和有效的方式处理接收到的数据的正确方法是什么?