在尝试构建一个可以使用 boosts 传输数据块/数组的程序时,async_write
我的线程可能遇到了问题:
这就是我想要执行的:
write(unsigned char *pMsg, unsigned short nMsgLen){
io_service_.post(boost::bind(&m_client::write_buf, this, pMsg, nMsgLen));
}
write_buf(unsigned char *pMsg, unsigned short nMsgLen){
boost::asio::async_write(target,
boost::asio::buffer(pMsg, nMsgLen),
boost::bind(&m_client::write_buf_compl,
this,
boost::asio::placeholders::error));
}
它确实编译,但pMsg
没有正确的内容,何时write_buf
被调用,我认为这是因为它不是在同一个线程内调用的。
那么,我该如何调整这个结构来将我的数组作为参数传输呢?!