OpenSSL是否具有“读取”数据的任何事件回调函数?

时间:2010-08-02 20:36:31

标签: c++ winapi client openssl visual-c++

当OpenSSL传入'Read'数据时,我正在寻找事件回调函数。 OpenSSL有这种功能吗?如果是的话,请你给我看一些示例代码吗?

我正在考虑为我的应用程序编写一个简单的包装器。这个包装器将在数据到达时进行回调。我最初的想法是创建一个以非阻塞模式循环的线程来扫描任何传入的数据。当数据到达时,我只会进行回调。我在这里做对了吗?

非常感谢您的回答!对不起我的英语。

2 个答案:

答案 0 :(得分:0)

Boost.Asio支持异步SSL读取操作。

答案 1 :(得分:0)

CyaSSL SSL library(类似于OpenSSL,但具有更小的占用空间和其他很酷的功能)具有类似于您所寻找的I / O回调。

在CyaSSL中,输入/输出回调由ssl.h中的 CallbackIOSend CallbackIORecv 原型化。需要使用 CyaSSL_SetIOSend() CyaSSL_SetIORecv()按SSL_CTX注册这些函数。默认情况(CBIOSend()和CBIORecv()在cyassl_io.c的底部注册。

CBIOSend和CBIORecv函数指针可以指向您的自定义I / O函数。您可以使用默认的Send()和Receive()函数(位于cyassl_io.c中的EmbedSend()和EmbedReceive())作为示例。

的问候,
克里斯