Я новичок в программировании сокетов.
Этот фрагмент кода ниже для получения ответа приблизительно 1 миллиона строк с сервера.Я не знаю точную длину ответа и, следовательно, проверяю, состоит ли группа ответов из конечных слов, таких как OK, NO, SUCCESS, FAILURE и т. Д.
size = 8192;
while(1)
{
readBytes = SSL_read(SSL, buff, size);
buff[readBytes] = 0;
if (readBytes <= 0) {
int errorno = SSL_get_error(SSL, readBytes);
throw ZIMAPEXPBadSSL(GetSSLError("SSL read failed", errorno, ERR_get_error()));
}
else {
rsp += buff;
if(checking_Here_If_The_Response_Is_Complete(buff))
break;
}
}
Это занимает больше времени, чем длякаждая полученная связка проверяет, достигнут ли конец.Например, он проверяет каждые 50 строк каждый раз, пока не наступит миллионная строка.
Я использую OpenSSL.Я погуглил и получил предложения типа использования SELECT ().