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. Is there a way to check availability local server with timeout in Qt?
Forum Updated to NodeBB v4.3 + New Features

Is there a way to check availability local server with timeout in Qt?

Scheduled Pinned Locked Moved Solved General and Desktop
20 Posts 4 Posters 1.4k Views
  • 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.
  • T Offline
    T Offline
    TomNow99
    wrote on last edited by TomNow99
    #11

    @jsulm I think about that, but I have many Qtimers :D

    EDIT:

    I want something like:

    Run my server. And in my application I want check connect to this server every 3 seconds. If I can't connect I want write qDebug()<<"noConnection" and end checking.

    jsulmJ 1 Reply Last reply
    0
    • T TomNow99

      @jsulm I think about that, but I have many Qtimers :D

      EDIT:

      I want something like:

      Run my server. And in my application I want check connect to this server every 3 seconds. If I can't connect I want write qDebug()<<"noConnection" and end checking.

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #12

      @TomNow99 I don't see any other solution as even a working connection needs some time to be established, you can't simply do the qDebug just after calling connectToHost()

      1 Reply Last reply
      0
      • T Offline
        T Offline
        TomNow99
        wrote on last edited by TomNow99
        #13

        @jsulm Hmmm. I tried add new Qthread and check connection in this Qthread, but I get error "Cannot create children for a parent that is in a different thread". My code:

        myThreadClass::myThreadClass(QTcpSocket *connSocket): connectionSocket(connSocket)
        {
        
        }
        
        myThreadClass::~myThreadClass()
        {
            connectionSocket->close();
        }
        
        void myThreadClass::run()
        {
            while(1)
            {
                connectionSocket->connectToHost("192.168.43.23", 139);
                connectionSocket->waitForConnected(3000);
        
                if(connectionSocket->state() == QTcpSocket::UnconnectedState)
                {
                    connectionSocket->close();
                    emit noConnection();
                }
        
                connectionSocket->close();
            }
        }
        

        In mainWindow i create myThread and started it. I add QTcpSocket pointer and get this error.

        class myThreadClass: public QThread
        {
            Q_OBJECT
        public:
            myThreadClass(QTcpSocket *connSocket);
            ~myThreadClass();
            void run();
        
        private:
            QTcpSocket *connectionSocket;
        
        signals:
            void noConnection();
        };
        
        jsulmJ 2 Replies Last reply
        0
        • T TomNow99

          @jsulm Hmmm. I tried add new Qthread and check connection in this Qthread, but I get error "Cannot create children for a parent that is in a different thread". My code:

          myThreadClass::myThreadClass(QTcpSocket *connSocket): connectionSocket(connSocket)
          {
          
          }
          
          myThreadClass::~myThreadClass()
          {
              connectionSocket->close();
          }
          
          void myThreadClass::run()
          {
              while(1)
              {
                  connectionSocket->connectToHost("192.168.43.23", 139);
                  connectionSocket->waitForConnected(3000);
          
                  if(connectionSocket->state() == QTcpSocket::UnconnectedState)
                  {
                      connectionSocket->close();
                      emit noConnection();
                  }
          
                  connectionSocket->close();
              }
          }
          

          In mainWindow i create myThread and started it. I add QTcpSocket pointer and get this error.

          class myThreadClass: public QThread
          {
              Q_OBJECT
          public:
              myThreadClass(QTcpSocket *connSocket);
              ~myThreadClass();
              void run();
          
          private:
              QTcpSocket *connectionSocket;
          
          signals:
              void noConnection();
          };
          
          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #14
          This post is deleted!
          1 Reply Last reply
          0
          • T TomNow99

            @jsulm Hmmm. I tried add new Qthread and check connection in this Qthread, but I get error "Cannot create children for a parent that is in a different thread". My code:

            myThreadClass::myThreadClass(QTcpSocket *connSocket): connectionSocket(connSocket)
            {
            
            }
            
            myThreadClass::~myThreadClass()
            {
                connectionSocket->close();
            }
            
            void myThreadClass::run()
            {
                while(1)
                {
                    connectionSocket->connectToHost("192.168.43.23", 139);
                    connectionSocket->waitForConnected(3000);
            
                    if(connectionSocket->state() == QTcpSocket::UnconnectedState)
                    {
                        connectionSocket->close();
                        emit noConnection();
                    }
            
                    connectionSocket->close();
                }
            }
            

            In mainWindow i create myThread and started it. I add QTcpSocket pointer and get this error.

            class myThreadClass: public QThread
            {
                Q_OBJECT
            public:
                myThreadClass(QTcpSocket *connSocket);
                ~myThreadClass();
                void run();
            
            private:
                QTcpSocket *connectionSocket;
            
            signals:
                void noConnection();
            };
            
            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #15

            @TomNow99 said in Is there a way to check availability local server with timeout in Qt?:

            while(1)

            You're blocking event loop...
            And the socket must be allocated in the thread where you want to use it.

            1 Reply Last reply
            0
            • T Offline
              T Offline
              TomNow99
              wrote on last edited by
              #16

              @jsulm I would like to check still connection that I add while(1)

              jsulmJ 1 Reply Last reply
              0
              • T TomNow99

                @jsulm I would like to check still connection that I add while(1)

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #17

                @TomNow99 I'm still not sure why you want this complicated solution using a thread if you can have one using a timer...

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  TomNow99
                  wrote on last edited by TomNow99
                  #18

                  @jsulm Hmmm, but how? Something like:

                  in QTimerSlot ( check evert 3 sec ) I have:

                  connectionSocket->connectToHost("192.168.43.23", 139);
                  timer2.start(1000); // maybe singleShot
                  
                  

                  and how to connect information from slotConnected and other QTimer?

                  slotConnected()
                  {
                      result = true;
                  }
                  
                  slotTimer2()
                  {
                     if(result == false )
                     {
                  
                     }
                  }
                  

                  ?

                  jsulmJ 1 Reply Last reply
                  0
                  • T TomNow99

                    @jsulm Hmmm, but how? Something like:

                    in QTimerSlot ( check evert 3 sec ) I have:

                    connectionSocket->connectToHost("192.168.43.23", 139);
                    timer2.start(1000); // maybe singleShot
                    
                    

                    and how to connect information from slotConnected and other QTimer?

                    slotConnected()
                    {
                        result = true;
                    }
                    
                    slotTimer2()
                    {
                       if(result == false )
                       {
                    
                       }
                    }
                    

                    ?

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #19

                    @TomNow99 Yes, like this

                    1 Reply Last reply
                    1
                    • T Offline
                      T Offline
                      TomNow99
                      wrote on last edited by
                      #20

                      @jsulm Thank you

                      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