我正在实现一个HTTPS客户端,它试图从服务器读取信息。在其工作期间,可以请求关机。它可以用以下代码表示:
http::async_read( stream_, buffer_, res_,
beast::bind_front_handler(
&session::on_read,
shared_from_this()));
beast::get_lowest_layer( stream_ ).cancel();一旦读取被取消(调用on_read时,操作取消错误),我将调用
stream_.async_shutdown([t = shared_from_this()] ( beast::error_code ec ) {
t->on_shutdown(ec);
});关机结束时会出现以下错误:
application data after close notify问题是忽略这个错误是否安全?
发布于 2022-06-28 15:08:53
您可以忽略此错误。如果服务器并发发送数据--在收到关闭通知之前异步发送应用程序数据块,就会发生这种情况。
stream_.async_shutdown([t = shared_from_this()] ( beast::error_code ec ) {
if (ec ...) // add proper condition here
ec = beast::error_code(success);
t->on_shutdown(ec);
});我还会在会话中添加一些标志,并在取消之前设置它,这样session::on_read就不会意外,可以在关闭后被忽略。
https://stackoverflow.com/questions/72788311
复制相似问题