Почему вторая итерация для запроса к серверу ошибочна?

100
08 декабря 2019, 21:10
while(1){
        const char sendBuff[1000] = "GET /\nHOST: google.com\n\n\0";
        char recvBuff[1000]{0};
        int sended = SSL_write(ssl, sendBuff, strlen(sendBuff)+1);

        int received = 0;
        while((received = SSL_read(ssl, recvBuff, 1000)) > 0)
            cout << recvBuff;
        cout << "sended: " << sended << ", received: " << received << endl;
        Sleep(5000);
}

Цикл выпоняется 1 раз, я получаю html-тело страницы. На вторую итерацию сервер не отправляет мне ничего (received == 0). Подскажите пожалуйста, почему

Answer 1

Не надо передавать \0, уберите +1 у strlen.

Возможно надо добавить Connection: Keep-Alive.

(Также используйте \r\n и добавьте версию хттп в строку запроса)

READ ALSO
OSG не работает с GDAL на Windows 10

OSG не работает с GDAL на Windows 10

Работаю на Windows 10 x64 IDE: QtCreator 48

134
Для чего нужен static_cast, как он работает и где его применяют?

Для чего нужен static_cast, как он работает и где его применяют?

Для чего нужен static_cast, как он работает и где его применяют?

151
Изменть стиль, размер и тип шрифта в Qt

Изменть стиль, размер и тип шрифта в Qt

У меня есть три чекбокса, QFontComboBox и QSpinBox, а также главное текстовое поле QTextEdit

121
C++ &mdash; линковка статических библиотек на linux в CMake

C++ — линковка статических библиотек на linux в CMake

На Windows в Visual Studio было достаточно раскидать файлы по специальным папкам и прописать:

160