1

我有一个基于 IOCP 的服务器,我们已经使用了很长时间。现在我们需要为此添加 SSL 支持。我正在努力寻找一个干净的解决方案。我发现其他两个线程中建议的两个选项 -

1) 使用 openssl Memory BIO - 但在网上没有找到任何与 IOCP 端口一起使用的示例,这些示例解释了由于 IOCP 的多线程性质而将出现的问题。2) 将 Boost ASIO 与 ssl 一起使用——我认为它在内部使用 IOCP。但是没有示例显示如何存储每个连接状态数据 - 例如,在我们的服务器中,为每个连接的客户端存储状态信息,此状态信息用于识别客户端并相应地解析客户端发送的数据。

如果您能建议解决上述两个问题或任何其他对您有用的解决方案,我将不胜感激。

更新:我正在使用 Simple C 在 winsock2 库中实现 IOCP。

最好的问候尼拉德里

4

1 回答 1

2

请在此处查看我的答案:如何将 OpenSSL 与 WinSock 一起使用?

我写了一篇文章,其中包含将 OpenSSL 与异步套接字一起使用的代码。文章的代码显示了 MFC 的异步套接字,但理论与 IOCP 相同。

我对文章中介绍的 OpenSSL 支持使用了一种设计变体,该支持可作为我基于 IOCP 的服务器框架的一部分提供;见这里:http ://www.serverframework.com/products---the-ssltls-using-openssl-option.html 。

于 2010-12-16T21:37:40.187 回答