首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost.Asio SSL不优雅关闭

Boost.Asio SSL不优雅关闭
EN

Stack Overflow用户
提问于 2011-04-15 05:10:48
回答 1查看 1.4K关注 0票数 3

我正在尝试处理SSL错误场景,例如SSL async_handshake()花费的时间太长。一段时间后(比如说20秒),我想关闭这个连接(lowest_layer().close())。我将连接对象作为参数传递给shared_ptr (),因此对象仍然存在,最终调用握手处理程序并销毁对象。

但是,我还是会有零星的车祸!看起来,在close()之后,SSL仍然试图读取或操作read缓冲区。

因此,最基本的问题是:硬关闭() SSL连接安全吗?

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-04-15 15:33:43

通常,我在套接字上使用的停止未执行异步操作的方法是socket::cancel,如文档中所述。它们的处理程序将以asio::error::operation_aborted作为错误参数进行调用,您将需要以某种方式处理该参数。

尽管如此,我不认为使用close而不是cancel有什么问题。不过,如果没有一些代码来分析,就很难提供很多帮助或建议。

请注意,一些Windows平台在取消未完成的异步操作时存在问题。如果您的应用程序需要支持文档有建议,则可移植取消。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5672621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档