bool Connection::Receive(){
std::vector<uint8_t> buf(1000);
boost::asio::async_read(socket_,boost::asio::buffer(buf,1000),
boost::bind(&Connection::handler, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
int rcvlen=buf.size();
ByteBuffer b((std::shared_ptr<uint8_t>)buf.data(),rcvlen);
if(rcvlen <= 0){
buf.clear();
return false;
}
OnReceived(b);
buf.clear();
return true;
}
该方法工作正常,但只有当我在它内部制造一个断点时。等待接收的时机是否存在问题?没有断点,就没有收到任何东西。我是否在加速asio async_read中获得竞争条件?
我不明白你的问题。尝试使用','或'。'例如... – nabulke 2011-05-31 05:59:30
@nabulke现在检查它 – Abanoub 2011-05-31 06:05:31
请不要使用俚语。 “如此奇怪”不是一个问题,“w8ting”不是一个真正的单词。这不是一个论坛。 – Soviut 2011-05-31 06:22:24