boost::asio阅读困难
boost::asio reading troubles
我是网络编程的新手,所以请耐心等待。我在boost文档中找不到任何关于这方面的信息。当使用asio::async_read时,当没有数据要从套接字中读取时,会引发文件结尾错误(至少,我认为是这样)。有什么方法可以实现某种检查来防止这种行为吗?我想了解的是:有没有什么方法可以等待数据出现,然后读取所述数据并调用处理程序?(如果这句话措辞不好,请这样说。我会尽力澄清的。)
当使用asio::async_read时当没有从套接字读取的数据
当套接字的另一侧关闭时,返回eof
,而不是当没有数据可读取时。
我想问的是:有没有任何等待数据的方式呈现,然后读取所述数据,以及呼叫处理程序?
这就是所谓的轮询,这就是asio io_service
为您所做的。您告诉io_service
您想通过启动async_read
从套接字读取数据。它代表您执行读取,并在成功或失败完成时调用完成处理程序。
研究Boost.Asio.
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 从 Boost ASIO 获取 epoll 描述符 io_service对象
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- C++ Boost::asio串行通信与Arduino无法写入
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 执行时使用 boost::asio::d eadline_timer 时出错
- Boost.Asio/OpenSSL HTTPS GET certificate trouble
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- boost::asio data owning `ConstBufferSequence`
- 如何替换此示例代码片段中已弃用的handler_type_t或 boost::asio::handler_type?
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 如何将boost::asio::d eadline_timer 与Qt一起使用?
- 将更高的优先级设置为 boost::asio 线程处理进程
- Async_read_until限制读取的字节大小(Boost::asio)
- Boost Asio - boost::bind 导致程序崩溃
- 使用Asio(Boost)通过网络发送灵活的数据量