boost Async_read_some / async_receive的行为就像MSG_PEEK一直打开一样

时间:2011-05-03 16:32:40

标签: sockets boost-asio

我有以下问题。

我在tcp套接字上启动async_receive 使用一些数据调用回调 我在套接字上启动另一个异步接收 调用回调但缓冲区还包含上一次调用的数据。好像我用MSG_PEEK标志调用recv,虽然我没有这样做。

我甚至尝试使用消息标志参数= 0调用该版本并且效果相同。

如何禁用此行为?我希望第一次调用在每次成功的异步处理程序调用之后从内核缓冲区中获取数据。

米哈伊

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。这是一个发送问题。我正在重用传递给async_write的缓冲区向量。