我在异步读取boost asio socket时遇到问题。 我有一个随机写入socket的客户端程序。 我有一个提升asio服务器,它应该读取并处理它。
当我同步阅读时tcp::socket _socket .available()
函数给出了我的确切结果
无论客户端写入什么内容都是可读的字节。
例如。
如果客户端第一次写入9000字节,第二次写入500字节。第一次读取给我9000字节,第二次给我500字节。
当我异步读取它时,我使用以下函数:
boost::asio::async_read(_socket,_response, boost::asio::transfer_at_least(1), boost::bind(&CMyclass::handle_read_header,
this,boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
这里bytes_transferred总是512并且读取它调用的9000字节数据,如18次。 有没有人对此有所了解。