因此,我开始使用的代码和有效的代码(下面有一些重要的注意事项)
int reply_length = boost::asio::read(*m_socketptr, boost::asio::buffer((char*)reply, 6));
这样做,我得到的标题,然后我解码和后续的另一个阅读,让我得到我的消息,然后我循环回到顶部,阅读另一个标题。这将我的CPU固定在100%,因此我想用如下内容替换上面读取的头文件:
m_socketptr->async_read_some(boost::asio::buffer(m_data, 6), boost::bind(&CSListener::handleRead, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
或
boost::asio::async_read(*m_socketptr, boost::asio::buffer(m_data, 6), boost::bind(&CSListener::handleRead, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
不管用哪种方式编写,handleRead方法都不会被调用。救命!?
短暂性脑缺血发作