gpt4 book ai didi

c++ - 如何检查 SSL 套接字是否关闭(异步)

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:21 26 4
gpt4 key购买 nike

一段时间以来,我一直在使用 boost asio 进行网络连接,但从未使用过 SSL 套接字。现在我需要使用 SSL 套接字,它们工作得很好。但是我无法确定套接字何时关闭(我通常像处理常规套接字一样这样做 - 在回调中使用 boost::asio::async_read_until() 时检查错误值功能。

下面是一些相关的代码片段:

boost::asio::streambuf streambuf;
boost::asio::ssl::context sslctx(io_service, boost::asio::ssl::context::tlsv1);
boost::asio::ssl::stream<boost::asio::ip::tcp::socket> sock(io_service, sslctx);

void DoAsyncRead()
{
boost::asio::async_read_until(sock, streambuf, "\n", MyReadHandler);
}

void MyReadHandler(const boost::system::error_code& error, size_t bytes_transferred)
{
if (error) {
std::cout << "Read error: " << error.message() << std::endl;
} else {
// ...
}
}

错误条件永远不会为真,即使我终止服务器或断开客户端连接。如何跟踪连接是否已关闭?

最佳答案

EOS 在大多数 API 中都不是错误条件。它是返回的标记值而不是字节数,通常为零 (Unix) 或 -1 (Java)。

关于c++ - 如何检查 SSL 套接字是否关闭(异步),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6088543/

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