您的位置:首页 > 其它

SSL_connect失败返回-1的一种情况解决办法

2017-07-02 22:01 991 查看
SSL_connect返回-1的一种原因是因为socket设置成了非阻塞模式,应设置为阻塞模式。

SSL_library_init();
        ERR_load_BIO_strings();
        SSL_load_error_strings();
        OpenSSL_add_all_algorithms();
        
        
SetMMOSocketOption(MMO_SOCKOPT_NONBLOCK,0); 

m_pSSLCtx =
SSL_CTX_new( SSLv23_client_method() );
 
m_pSSL =
SSL_new(m_pSSLCtx);
 

==========================================

SetMMOSocketOption(MMO_SOCKOPT_NONBLOCK,0); 



#ifdef WIN32
result = ioctlsocket (m_iSocket, FIONBIO, (u_long*)&value);
#else
        //ioctl(m_socket, FIONBIO, &result);   
       
        int flag =
fcntl(m_iSocket,
F_GETFL,0);
        if (flag <
0)
        {
            result = -1;
            break;
        }
        else
        {
            if (value ==
1)
            {
                flag |= O_NONBLOCK;
                result = fcntl (m_iSocket,
F_SETFL, flag);
            }
            else
            {
                flag &= ~O_NONBLOCK;
                result = fcntl (m_iSocket,
F_SETFL, flag);
            }
        }
        
#endif

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐