我有一台基于IOCP的服务器,我们已经使用了很长时间。现在我们需要为此添加SSL支持。我正在努力寻找一个干净的解决方案。我在其他两个帖子中找到了两个选项 -
1)使用openssl Memory BIO - 但没有在网上找到任何与IOCP端口一起使用的示例,这些示例解释了由于IOCP的多线程特性而引起的问题。 2)使用Boost ASIO和ssl - 我认为在内部使用IOCP。但是没有示例显示每个连接状态数据是如何存储的 - 例如在我们的服务器中存储了为每个连接的客户端存储的状态信息,该状态信息用于识别客户端并相应地通过客户端数据发送解析。
如果您能为上述两个问题或任何其他适合您的解决方案提出解决方案,我将非常感激。
更新:我使用Simple C在winsock2库中实现IOCP。
最诚挚的问候 Niladri
答案 0 :(得分:2)
请在此处查看我的回答:How do I use OpenSSL with WinSock?
我写了一篇文章,其中包含使用OpenSSL和异步套接字的代码。文章的代码显示了MFC的异步套接字,但IOCP的理论是相同的。
我使用了文章中提供的OpenSSL支持的变体,它是我基于IOCP的服务器框架的一部分;见这里:http://www.serverframework.com/products---the-ssltls-using-openssl-option.html。