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