Всякий раз, когда я вхожу в OpenSSL на Windows или Mac, я всегда делаю свои собственные BIO памяти и свяжу их с реализацией сокета на основе платформы (асинхронная неблокирующая). (WSAAsyncSelect на окнах: CFSocket на Mac)Использование OpenSSL без потоков
Secure programming with the OpenSSL API, размещенный на ibm.com, кажется лучшим справочником по внедрению OpenSSL, но он реализует очень простое блокирующее соединение.
Существует ли стандартный способ установки и использования OpenSSL с неблокирующими сокетами, так что вызовы SSL_read не будут блокироваться, если нет данных, например?
BIO_new_connect - это, безусловно, канонический способ создания SSL-гнезда с OpenSSL. Мой запрос сосредоточен на: что является наилучшим практическим/наименее эффективным способом включения сокетов OpenSSL в программу, где SSL_read не должен блокироваться. –