Wangweilai1 Ответов: 1

Что такое maching windows socket IOCP model и openssl


В системе Windows Server, например, в select model openssl используйте функцию " SSL_read "для сопоставления с функцией" recv", но в модели IOCP как я могу использовать функцию openssl для сопоставления с функцией" WSARecv"? Из-за того, что в моей программе есть много функций "WSA***", так что функцию openssl BIO можно не использовать, что я должен делать в этом состоянии?


Спасибо за помощь.

Что я уже пробовал:

Uint с nRetVal = WSARecv(гнездо &ампер;m_wsaInBuffer, 1, &ампер;dwIoSize, &ампер;ulFlags, &ампер;pReadOverlap-&ГТ;m_ol, нуль);

во что я могу превратиться:

int nRetVal = SSL_read(m_pSsl, m_wsaInBuffer.buf, strlen(m_wsaInBuffer. buf) + sizeof(char));

1 Ответов

Рейтинг:
4

Len Holgate

Я написал об этом статью для журнала Windows Developer Magazine еще в 2002 году. Вы можете прочитать его здесь[^Хитрость заключается в том, чтобы использовать биопару и протолкнуть данные через движок OpenSSL.

Вы можете использовать аналогичную конструкцию для решений на основе IOCP. Хитрость заключается в том, чтобы нормально обрабатывать ваши завершения чтения IOCP, а затем передавать данные в вашу БИОПАРУ, которая направляет их через код OpenSSL, а затем обратно к вам.