Planned maintenance has been done but it did not solve the problem. So work will continue on this and a new time for trying updates will be announced asap.

Send and receive strings with QTcpSocket



  • Hello, I have a project with a window which displays some numeric informations. This informations come from a tcp server so I tried to add a tcp client in my program with these lines below that is supposed to send a message to my server regarding to it, the message is not received, could I have some help please ?
    My code :

        //Creation socket
        QTcpSocket socMeteo;
        socMeteo.connectToHost("192.168.1.35",10001);
        
        //Envoi de donnees
        QTextStream texte(&socHauteur);
        //texte<<phrase<<endl;
        texte<<"Bonsoir"<<endl;
    

    Thank you very much


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    You are not checking whether the connection is successful, that would be the first step.

    How is your server implemented ?



  • My server is at school so right now I'm using Hercule setup utiliy to simulate a tcp server
    0_1559597036206_f7d387b0-ade2-4ee6-836f-55854a4951b6-image.png
    So how should I proceed to check if the connection is successful or not please ? I'm sorry I'm using QT Creator since April so I don't have a lot of knowledge


  • Lifetime Qt Champion

    This has nothing to do with Qt Creator. Qt Creator is just an IDE.

    In any case, check waitForConnected


  • Moderators

    @Captain-Matsuyo

    besides what @SGaist said about the connected state of your socket, this

    QTcpSocket socMeteo;

    is on the stack. My guess is, the QTcpSocket - object gets destroyed before the os has any chance of actually sending anything over the socket


  • Qt Champions 2018

    QTcpSocket socMeteo;
    QTextStream texte(&socHauteur);

    These are 2 different sockets. What are you trying to do?

    It should be something like:

    auto socMeteo = new QTcpSocket(this);
    socMeteo->connectToHost("192.168.1.35",10001);
    connect(socMeteo,&QTcpSocket::connected,socMeteo,[socMeteo]()->void{
        QTextStream texte(socMeteo);
        texte<<"Bonsoir\n";
    });