2014-05-01 395 views
-1

在我的代碼中,我調用了SSL_do_handshake()函數。 如果服務器獲得「正確」的消息,一切正常。 但是,對於安全問題,我嘗試發送虛擬消息。只是「你好」到正確的端口和正確的IP地址。在這種情況下,SSL_do_handshake()會永久卡住。 我想在這種情況下返回函數,以便我的服務器不會卡住。SSL_do_handshake()被卡住

有什麼選擇?

我讀了關於設置生物到非阻塞狀態。 我加入我的代碼: BIO_set_nbio(bio,1);在連接建立之前.. 但它沒有做這個工作...

我該怎麼辦?

回答

0

BIO_set_nbio只設置標誌,表明bio應該被認爲是非阻塞的。你必須確保套接字本身是非阻塞的。

+0

我該怎麼做? – user1047069

+0

使用搜索引擎有多難?尋找「C設置套接字非阻塞」給我作爲第一擊http://stackoverflow.com/questions/1543466/how-do-i-change-a-tcp-socket-to-be-non-blocking其中回答你的問題。 –

+0

ssl握手有超時嗎? – user1047069