Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QTcpSocket Returning Error -1



  • I am trying to create a very simple TCP connection using QTcpSocket and QTcpServer. The server appears to be receiving the connection fine. The client, though, is returning error -1. Does anyone know what might be causing this? The source code for the client is below.

    I am able to write a working TCP client-server program program in Python that connects over port 10000. It works on the same machine on which this Qt program is failing.

    I can provide the server code if needed. But, like I said, the server appears to be working. It just listens for a connection, and when the newConnection signal comes in, it sends some data. The client fails whether or not I send any data.

    Any help is appreciated.

    @int main( int argc, char * argv[] ) {
    handler h;

      QTcpSocket *tcpSocket = new QTcpSocket;
      QObject::connect(tcpSocket,SIGNAL(readyRead()),
                  &h,SLOT(commandRead()));
    
      tcpSocket->connectToHost("localhost",10000);
    
      tcpSocket->waitForConnected(5000);
    
      // returns -1
      cout<<tcpSocket->error()<<"\n";
      return 0;
    

    }
    @



  • Didn't you forget to instantiate a QCoreApplication object?

    I'll start main function with:
    @QCoreApplication app(argc, argv);@



  • Bruno13:

    Thank you for the reply. You are right, I had forgotten to do that. I hadn't given much attention to setting up and running the main loop, because I thought that I needed to deal with the error code that was being returned by the socket.

    But it appears that if I go ahead and run app.exec() and ignore the error code, it can receive data just fine. I should've just ignored the error code, I guess. According to the QT documentation, though, this code means that "An unidentified error occurred."

    Thank you again.


Log in to reply