对于 DTLS 连接设置,我需要帮助以获取以下情况的回调。
1)。当客户端发送 ClientHello 消息并且在应用程序配置了一段时间后,如果 ServerHello 没有出现超时,则应该收到。
2)。如果服务器没有从客户端收到任何 ClientHello,那么我在服务器端需要同样的事情,然后在配置的一段时间后,应该收到超时。
我的问题是 OPENSSL 是否提供此类功能,如果是,请告诉我,否则请告诉我如何实现此功能。
要回答您的问题 (1),您可以设置接收超时
BIO_ctrl(SSL_get_rbio(ssl), BIO_CTRL_DGRAM_SET_RECV_TIMEOUT, 0, &timeout);
然后在您的 SSL_read 错误处理中检查 BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP,您可以重试。http://sctp.fh-muenster.de/中有一个很好的示例代码和解释
同样在服务器端。请参阅以下示例以编写简单的 DTLS 服务器/客户端http://sctp.fh-muenster.de/dtls/dtls_udp_echo.c。
如果我是你,我会从上面链接中的 DTLS.pdf 文档开始。希望这可以帮助。