La libreria OpenSSL offre la massima flessibilità in termini di gestione dei problemi relativi al socket. I blocchi SSL_connect
nel tuo caso perché devi usarlo con un socket di blocco. Si prega di usarlo con un socket non bloccante, nel qual caso tornerà con un -1. Se chiami la funzione SSL_get_error
che ti darà l'errore SSL_ERROR_WANT_READ
o SSL_ERROR_WANT_WRITE
a seconda di quando tcp recv o send non è in grado di completare l'operazione rispettivamente.
Quando si ottiene SSL_ERROR_WANT_WRITE
/SSL_ERROR_WANT_READ
, è necessario chiamare la funzione di selezione passando il socket all'appropriato fd_set
e un timeout. Se si seleziona il timeout, è possibile ritenere scaduto il limite SSL_connect
.
Nota: Il numero SSL_SESSION_set_timeout
viene utilizzato per impostare i valori di timeout della sessione che sono collegati alla ripresa SSL. Non hanno nulla a che fare con il timeout di una connessione.
I link qui sotto dovrebbe aiutare (in particolare il secondo link, Sezione 6, che parla di Multiplexed I/O):
:(risorsa collegata spostato –
Qui ci sono altri link a quei PDF: [part1] (http://vanets.vuse.vanderbilt.edu/dokuwiki/lib/exe/fetch.php?media=resource:part1.pdf), e [part2] (http: //vanets.vuse.vanderbilt.edu/dokuwiki/lib/exe/fetch.php?media=resource:part2.pdf). Ho pe questo aiuta! – Castaglia