停止我有一些問題與升壓:: ASIO :: async_read的boost ::支持ASIO :: async_read沒有條件
這裏是我的代碼
void TCPConnection::listenForRead() {
boost::asio::async_read(m_socket,
boost::asio::buffer(m_inbound_data),
boost::asio::transfer_at_least(64),
boost::bind(&TCPConnection::handle_read,
shared_from_this(),
boost::asio::placeholders::error)
);
}
和這裏的處理程序:
void TCPConnection::handle_read(const boost::system::error_code& error) {
if (error) {
std::cout << "Error read: " << error.category().name() << " -- " << error.value() << std::endl;
} else {
std::string archive_data(&m_inbound_data[0], m_inbound_data.size());
std::cout << "Message received: " << archive_data << std::endl;
listenForRead();
}
}
隨着
std::vector<char> m_inbound_data;
時I g等當客戶端連接在控制檯上一個無限循環:
「接收消息:」//沒有消息的跟蹤
如果我打印的數據長度,它總是爲0。
我連接與:telnet localhost 4242
任何人都知道爲什麼?它不應該等待至少64個字符?
什麼是m_inbound_data'的'類型,什麼是它的大小 – 2011-04-21 17:25:15
的std ::矢量 m_inbound_data; –
TheSquad
2011-04-21 18:01:10