Confuso sobre E / S sem bloqueio OpenSSL

Em geral, a biblioteca OpenSSL (C API) parece oferecer duas maneiras de fazer tudo: você pode usar soquetes simples do sistema configurados ao seu gosto ou usar o OpenSSLBIObjetos que são como fluxos parecido

No entanto, muitas vezes estou confuso com algumas das funcionalidades duplicadas. Por exemplo, como você faz uma conexão SSL sem bloqueio? Uma maneira parece ser simplesmente acessar o descritor de arquivo subjacente e configurá-lo para não-bloqueio usandofcntl. Mas há também uma função da API OpenSSL chamadaBIO_set_nbio que recebe umBIO* objeto e define-o para o modo sem bloquei

Então, qual é a melhor maneira de configurar um soquete SSL sem bloqueio? O que acontece se você passar ao OpenSSL um descritor de arquivo nativo que éj definido para o modo sem bloqueio viafnctl? Você ainda precisa ligar especificamente paraBIO_set_nbio para tornar oBIO objeto sem bloqueio?

questionAnswers(1)

yourAnswerToTheQuestion