gpt4 book ai didi

ssl - 为什么 DTLSv1_listen() 返回零?

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:58 28 4
gpt4 key购买 nike

我正在使用示例代码“dtls_udp_echo.c”学习 DTLS...

服务器:“DTLSv1_listen(ssl, &client_addr)”

底层套接字是非阻塞的,但会在可读性时唤醒。

只要客户端执行 SSL_connect(),服务器就会被调用。所以我相信 hello 是由服务器发送和接收的。但是 DTLSv1_listen() 总是返回零,而 client_addr 也全为零。我只是不明白可能出了什么问题。

我采纳相关帖子的建议添加SSL_state_string_long()。它在 DTLSv1_listen() 返回 0 后打印“SSL state before/accept initialization”。

谢谢你的帮助。

最佳答案

也许您启用了 cookie 交换?我不确定它是否在较新的 openssl 版本中默认启用。为了防止服务器受到 dos 攻击,hello 消息有不同的行为。客户端发送一个问候,服务器用一个 helloVerifyRequest 回答。客户端发送带有附加 cookie 的问候。服务器验证此 cookie,当它有效时,正常的握手例程将继续。发送此 HelloVerifyRequest 后,DTLSv1_listen 返回 0。可能那是你的问题。我找到了一个近乎完美的关于客户端服务器与 dtls 通信的文档。这是 link .

关于ssl - 为什么 DTLSv1_listen() 返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15261584/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com