如何在 C++ 中的套接字上进行多次连续读取?

问题描述 投票:0回答:0

目前我正在尝试用 C++ 处理 TLS 连接。我已经在套接字中成功编写了 Client Hello,但是我无法从套接字中读取。

// poll until server hello is received
int len = 0;
while (len == 0) {
    ioctl(sockfd, FIONREAD, &len);
}

uint8_t server_hello[len];
if (read(sockfd, server_hello, len) < 0) {
    throw std::runtime_error("failed to read server hello");
};

// poll until server cert is received
len = 0;
while (len == 0) {
    ioctl(sockfd, FIONREAD, &len);
}

uint8_t server_cert[len];
if (read(sockfd, server_cert, len) < 0) {
    throw std::runtime_error("failed to read server cert");
};

第一次 server_hello 读取工作正常,但我不知道如何“清除”套接字并等待 server_cert 读取。我找不到太多关于此的信息,也不知道在哪里可以找到这方面的资源。

c++ sockets networking tls1.2
© www.soinside.com 2019 - 2024. All rights reserved.