gpt4 book ai didi

c++ - SSL 套接字释放和关闭

转载 作者:行者123 更新时间:2023-11-30 01:19:13 25 4
gpt4 key购买 nike

对于 SSL 连接,从 accept 调用接收到的 FD 可以做什么?可以重复使用吗?

我想知道的是:

一旦我接受连接,我就会得到 FD。我使用 SSL_new 创建了一个 SSL 句柄 (SSL*)。使用 SSL_set_fdFD 添加到此句柄。我使用 SSL_accept 进行握手。现在,如果我在 SSL* 上调用 SSL_shutdownFD 会关闭吗? SSL_free 怎么样?

如果上述问题的答案是否定的,那么我可以将 FD 与另一个 SSL* 一起使用吗?

为了准确解释我想要什么,如果我们使用句柄SSL* 从连接FD 中读取一些数据,那么我们将释放或关闭SSL*,我们可以使用新的 SSL*FD 读取剩余数据吗?

最佳答案

SSL_shutdown 仅通过套接字发送关闭通知。如果你想在之后将套接字作为普通套接字重用,你必须确保另一端也执行了 SSL_shutdown。此信息为您提供 SSL_shutdown 的返回码:如果它是 1,则 SSL 连接已关闭,如果它是 0,您应该再次调用 SSL_shutdown,等待来自对等方的关闭通知。有关详细信息,请参阅 SSL_shutdown 文档。

完成此操作后,您可以继续将套接字用作普通套接字。这是通过 FTP (ftps) 在 SSL 中完成的,例如使用“AUTH TLS”连接将升级到 SSL,使用“CCC”连接将再次降级为纯文本。

SSL_free 仅释放与 SSL 对象关联的内存,它不会更改套接字上的任何内容,也不会发送/接收任何数据。

关于c++ - SSL 套接字释放和关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193743/

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