提升:: asio阅读麻烦

时间:2011-06-28 19:48:56

标签: c++ networking boost-asio

我是网络编程的新手,所以请耐心等待。我在boost文档中找不到任何相关内容。使用asio :: async_read时,如果没有要从套接字读取的数据,则会引发文件结束错误(至少,我认为确实如此)。有没有办法实现某种检查来防止这种行为?我想要的是:有没有办法等待数据存在,然后读取所述数据并调用处理程序? (如果措辞不当,请说出来。我会尽力澄清。)

1 个答案:

答案 0 :(得分:3)

  

使用asio :: async_read时,结束   没有时会引发文件错误   要从套接字读取的数据

当套接字的另一端关闭时,

eof返回,而不是在没有数据要读取时。

  

我想要的是:在那里   任何等待数据的方式   目前,然后读取所述数据和   打电话给处理程序?

这称为轮询,这就是asio io_service为你做的事情。您通过发起io_service告诉async_read您要从套接字读取数据。它代表您执行读取,并在成功完成或失败时调用完成处理程序。

在Boost.Asio提供的异步和同步方法之间study the differences可能值得花时间。