Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Client-server application
Forum Updated to NodeBB v4.3 + New Features

Client-server application

Scheduled Pinned Locked Moved General and Desktop
24 Posts 7 Posters 12.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    andre
    wrote on last edited by
    #13

    Of course not! You are not even creating an application object, you are not starting an event loop, etc. Did you actually look at the examples that were referenced?

    1 Reply Last reply
    0
    • Z Offline
      Z Offline
      za83
      wrote on last edited by
      #14

      I worked with QT long ago. But I thought this code must be though compiling. Isn't it?

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #15

        In addition to what Andre said: Are sure that "../ssl/server.crt" is the right path ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • Z Offline
          Z Offline
          za83
          wrote on last edited by
          #16

          I created an application object but code is still not compiling as I expected.
          main.cpp:10: error: no match for 'operator=' in '((Server*)this)->Server::m_socket = (operator new(8u), (<statement>, ((QSslSocket*)<anonymous>)))'
          [code]
          #include <QApplication>
          #include <QtNetwork/QSslSocket>
          #include <QDebug>

          class Server : public QObject
          {
          public:
          void f()
          {
          m_socket = new QSslSocket(this);
          m_socket->setSocketDescriptor(handle);
          m_socket->setProtocol(QSsl::SslV3);

              QByteArray key;
              QByteArray cert;
          
              QFile file_key("../ssl/server.key");
              if(file_key.open(QIODevice::ReadOnly))
              {
                  key = file_key.readAll();
                  file_key.close();
              }
              else
              {
                  qDebug() << file_key.errorString();
              }
          
              QFile file_cert("../ssl/server.crt");
              if(file_cert.open(QIODevice::ReadOnly))
              {
                  cert = file_cert.readAll();
                  file_cert.close();
              }
              else
              {
                  qDebug() << file_cert.errorString();
              }
          
              //qDebug() << key + "\n" + cert;
          
          
              QSslKey ssl_key(key, QSsl::Rsa);
          
              QSslCertificate ssl_cert(cert);
          
              m_socket->setPrivateKey(ssl_key);
              m_socket->setLocalCertificate(ssl_cert);
              m_socket->startServerEncryption();
          }
          

          private:
          QSslSocket m_socket;
          };

          int main( int argc, char **argv )
          {
          QApplication app(argc, argv);

          if (!QSslSocket::supportsSsl()) {
          QMessageBox::information(0, "Secure Socket Server",
                       "This system does not support OpenSSL.");
              return -1;
          }
          
          Server server;
          server.f();
          
          return app.exec(&#41;;
          

          }
          [/code]

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #17

            Have a look at the declaration of m_socket

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • Z Offline
              Z Offline
              za83
              wrote on last edited by
              #18

              Thanks.
              error: variable 'QSslKey ssl_key' has initializer but incomplete type (Solved #include <QtNetwork/QSslKey>)

              1 Reply Last reply
              0
              • Z Offline
                Z Offline
                za83
                wrote on last edited by
                #19

                How to include libs?
                I wrote
                [code]
                LIBS += -L/C:/OpenSSL-Win32/lib ssleay32.lib libeay32.lib
                [/code]
                error: ssleay32.lib: No such file or directory

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #20

                  That's not all for m_socket.

                  Please, search the documentation a bit "Other libraries":http://qt-project.org/doc/qt-4.8/qmake-project-files.html#declaring-other-libraries

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • Z Offline
                    Z Offline
                    za83
                    wrote on last edited by
                    #21

                    Thanks but unfortunately it does not help me.

                    main.cpp:13: error: undefined reference to _imp___ZN10QSslSocketC1EP7QObject' main.cpp:15: error: undefined reference to _imp___ZN10QSslSocket11setProtocolEN4QSsl11SslProtocolE'
                    main.cpp:45: error: undefined reference to _imp___ZN7QSslKeyC1ERK10QByteArrayN4QSsl12KeyAlgorithmENS3_14EncodingFormatENS3_7KeyTypeES2_' main.cpp:47: error: undefined reference to _imp___ZN15QSslCertificateC1ERK10QByteArrayN4QSsl14EncodingFormatE'
                    main.cpp:49: error: undefined reference to _imp___ZN10QSslSocket13setPrivateKeyERK7QSslKey' main.cpp:50: error: undefined reference to _imp___ZN10QSslSocket19setLocalCertificateERK15QSslCertificate'
                    main.cpp:51: error: undefined reference to _imp___ZN10QSslSocket21startServerEncryptionEv' main.cpp:51: error: undefined reference to _imp___ZN15QSslCertificateD1Ev'
                    main.cpp:51: error: undefined reference to _imp___ZN7QSslKeyD1Ev' main.cpp:45: error: undefined reference to _imp___ZN7QSslKeyD1Ev'
                    main.cpp:51: error: undefined reference to _imp___ZN15QSslCertificateD1Ev' main.cpp:51: error: undefined reference to _imp___ZN7QSslKeyD1Ev'

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #22

                      Sure it helps, that's a new error. Did you build Qt with ssl support ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0
                      • Z Offline
                        Z Offline
                        za83
                        wrote on last edited by
                        #23

                        I did not build Qt. I just installed it on Windows.
                        How can I do it? Can I use that build for commercial applications under LGPL?

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          tobias.hunger
                          wrote on last edited by
                          #24

                          You are ship your commercial applications under LGPL license? Those are of course compatible with LGPL Qt.

                          1 Reply Last reply
                          0

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved