asio::read() 需要很长时间,使用 asio::write 没有问题
asio::read() takes really long time, no proble with asio::write
我正在编写简单的同步SMTP和POP3客户端。问题在于读取服务器响应。它被正确读取,尽管它需要很长时间,比如一分钟。我已经查看了与wireshark的通信,并立即得到了响应,但不知何故,这一行受到限制(调试器检查(
boost::asio::read(socket, receiveBuffer, boost::asio::transfer_all((, error(;
我做错了什么吗?你知道有什么解决方案吗?
transfer_all
在两种情况下返回
streambuf
:读取了 64k 字节的数据(这是在单个操作中读取数据的默认值(,或者发生错误,例如第二端关闭了连接,因此在这种情况下,您有一些读取数据EOF
作为错误。您的write
调用有效,因为write
需要一些缓冲区并且有其长度,因此它知道必须发送多少字节。如果不知道必须读取多少数据,请使用read_until
,读取,直到\r序列出现在即将到来的数据中。
@rafix07
相关文章:
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 执行时使用 boost::asio::d eadline_timer 时出错
- 如何将boost::asio::d eadline_timer 与Qt一起使用?
- 程序崩溃使用boost::asio
- TCP 服务器的异步读取使用 boost::asio 打印客户端套接字发送的数据
- 如何使用C++和Boost Asio从HTTP发布请求中获取键值
- std::boost::asio::p ost / dispatch 使用哪个io_context?
- 可以使用 boost::asio::thread_pool 而不是将 boost::asio::io_context 与
- 使用提升 asio 时出现"resolve: Host not found (authoritative)"异常
- asio::read() 需要很长时间,使用 asio::write 没有问题
- Boost.Asio:不能使用 std::bind() 来指定回调
- 如何使用 asio 本地数据报构建回显服务器和客户端?
- 操作系统 (Linux) 在使用 boost::asio::generic::raw_protocol::socket
- 提升::Asio 使用异步操作时传输的字节
- boost::asio 使用 post() 时没有调用处理程序,当直接调用函数时有效(io_context有工作)
- BOOST :: ASIO使用成员受体而不是新成员时崩溃
- Boost::ASIO:使用两个进程的双向通信
- Boost Asio-使用shared_ptr处理解析器和套接字