如何在boost :: asio :: async_read中获取可读字节

时间:2013-07-29 14:48:33

标签: c++ boost-asio

我在异步读取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次。 有没有人对此有所了解。

0 个答案:

没有答案