2015-11-04 58 views
4

在互联网上搜索几个小时我无法找到我的问题的答案。可以在多个SSL流之间共享boost :: asio :: ssl :: context吗?

我的模型是这样的:我有一个共享boost::asio::ssl::context被用来创建boost::asio::ssl::stream的实例。然后将流对象传递给不同的线程。

此模型线程安全吗?可以使用相同的boost::asio::ssl::context构建将同时使用的不同SSL流对象吗?

请将,在将此问题标记为重复之前,请仔细阅读说明。谢谢!

我的具体情况是,没有任何对象是共享的线程。所以说Boost.Asio SSL thread safety线程安全中的任何内容都不会影响我的情况。我从一个线程访问boost::asio::ssl::context

回答

3

由于SSL上下文需要在SSL会话之间共享(否则,会话恢复如何工作),SSL上下文类是完全内部线程安全的。不过,您可以在多个SSL连接中使用SSL上下文,但可以使用多个线程中的SSL上下文。

+0

但不要忘记正确初始化libssl! –

+0

非常感谢您的帮助!这是我需要的主张。直觉上我虽然这应该是可能的,它的工作原理。但是,当某些事情发挥作用时,并不意味着它是正确的,并可能在另一台机器上发生故障 – GreenScape

+0

@RichardHodges我相信'boost'应该在内部初始化它的SSL后端。就我所知,它是这样做的。 – GreenScape

相关问题