boost::asio阅读困难

boost::asio reading troubles

本文关键字:asio boost      更新时间:2023-10-16

我是网络编程的新手,所以请耐心等待。我在boost文档中找不到任何关于这方面的信息。当使用asio::async_read时,当没有数据要从套接字中读取时,会引发文件结尾错误(至少,我认为是这样)。有什么方法可以实现某种检查来防止这种行为吗?我想了解的是:有没有什么方法可以等待数据出现,然后读取所述数据并调用处理程序?(如果这句话措辞不好,请这样说。我会尽力澄清的。)

当使用asio::async_read时当没有从套接字读取的数据

当套接字的另一侧关闭时,返回eof,而不是当没有数据可读取时。

我想问的是:有没有任何等待数据的方式呈现,然后读取所述数据,以及呼叫处理程序?

这就是所谓的轮询,这就是asio io_service为您所做的。您告诉io_service您想通过启动async_read从套接字读取数据。它代表您执行读取,并在成功或失败完成时调用完成处理程序。

研究Boost.Asio.

提供的异步和同步方法之间的差异可能是值得的