将SSL添加到基于IOCP的Windows服务器的最简单方法是什么?

问题描述:

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

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

如果您能提出解决上述两个问题或任何其他适用于您的解决方案,我将不胜感激。

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

问候 Niladri

+0

请更新您的问题,并描述您所寻求的平台和开发工具/编程语言的解决方案。 – 2010-12-16 15:43:49

见我的答案在这里:How do I use OpenSSL with WinSock?

我写了代码使用OpenSSL与异步插座的文章。该文章的代码显示了MFC的异步套接字,但理论与IOCP相同。

我在本文提出的OpenSSL支持的设计中使用了一个变体,该变体可作为基于IOCP的服务器框架的一部分;请看这里:http://www.serverframework.com/products---the-ssltls-using-openssl-option.html