@WoOPHY

OpenSSL: Отправка и получениe данных с помощью функций SSL_write и SSL_read. В чем проблема?

Здравствуйте!
Пишу простенький почтовый клиент POP3s на c++ с использованием библиотеки openssl.
При написании столкнулся со следующей проблемой: после создания ssl подключения к серверу (например, pop.mail.ru или pop.google.com с 995 портом) и получении подтверждения, не получается отправить следующую команду(например, user ) и принять ответ с сервера. После отправки данных функцией SSL_write, программа завершает выполнение с кодом 0 через минуту. В чем может быть проблема?

void communicateWithPOP(const int sock, const argValues* values){

    int bytes;
    string reply ;
    char buf[2048];

    SSL_CTX *ctx;
    SSL* ssl;
    SSL_library_init();
    ctx = InitCTX();
    ssl = SSL_new(ctx);
    SSL_set_fd(ssl, sock);
    SSL_CTX_set_default_verify_paths(ctx);


    if(SSL_connect(ssl) == -1)
        ERR_print_errors_fp(stderr);

    else{

        string nameReq = "user usr";
        bytes = SSL_read(ssl,buf,sizeof(buf));
        buf[bytes] = 0;
        cout << "[CONNECTION] : "<< buf << endl;
        memset(buf,0, sizeof(buf));

        int sslwRet = SSL_write(ssl, nameReq.c_str(), strlen(nameReq.c_str()));
        cout << "SSL_write ret : " << sslwRet << endl;

        bytes = SSL_read(ssl, buf, sizeof(buf));
        cout << "SSL_read ret : " << bytes << endl;

        SSL_free(ssl);

    }

    close(sock);
    SSL_CTX_free(ctx);
}

59db91d8df3ba542611459.jpeg
  • Вопрос задан
  • 810 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы