Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. QUdpSocket aumentando a memoria!
Forum Updated to NodeBB v4.3 + New Features

QUdpSocket aumentando a memoria!

Scheduled Pinned Locked Moved Portuguese
3 Posts 3 Posters 1.5k 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.
  • G Offline
    G Offline
    gazoni
    wrote on last edited by
    #1

    Pessoal preciso de uma ajuda!
    Estou implementado uma aplicação com QUdpSocket que possui evento de teclado, entretanto ao realizar um determinado evento do teclado ele tera que enviar uma mensagem pela rede. Noto que ao realizar o envio de qualquer mensagem verifico que há um aumento na memoria o que pode ser?

    @void MainWindow::keyPressEvent(QKeyEvent *event){

    switch (event->key())
    {
    case Qt::Key_4:
        //cout << "LEFT" << endl;
        if(posxgrab > -18)
            posxgrab--;
        break;
    case Qt::Key_6:
        //cout << "RIGHT" << endl;
        if(posxgrab < 18)
            posxgrab++;
        break;
    case Qt::Key_8:
        //cout << "UP" << endl;
        if(poszgrab > -18)
            poszgrab--;
        break;
    case Qt::Key_2:
        //cout << "DOWN" << endl;
        if(poszgrab < 18)
            poszgrab++;
        break;
    

    ........
    default:
    event->ignore();
    }

    QString msgsGrab = "$GRAB,1,1," + QString::number(anglegrab) + ".00," + QString::number(posxgrab) + ".00," + QString::number(alturagrab) + ".00," + QString::number(poszgrab) + ".00," + QString::number(rotxgrab) + ".00,"
            + QString::number(rotygrab) + ".00," + QString::number(rotzgrab) + ".00,000.00,000.00,000.00;";
    

    //chamada para o envio de msgs
    enviaMsgGrabTeclado(msgsGrab);

    }
    
    void MainWindow::enviaMsgGrabTeclado(QString msgsGrab)
    {
    
        QByteArray message = msgsGrab.toAscii().constData();
        QHostAddress adress;
        if(!IPHost.isNull() || PortClient != 0)
        {
            adress.setAddress(IPHost);
    
            socketsender->writeDatagram(message.data(),adress,PortClient);
            msgsGrab.clear();
        }
        else{}
    

    }@

    Obrigado!

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      Mas você percebe um aumento gradativo a cada mensagem enviada ou apenas no inicio?

      1 Reply Last reply
      0
      • T Offline
        T Offline
        tchoninho
        wrote on last edited by
        #3

        Tente adicionar a chamada abaixo após escrever o datagrama.

        [code]
        socketsender->flush()
        [/code]

        Vai algumas outras dicar para melhorar desempenho do seu programa baseando-se no código postado:

        • usar referencia na passagem de parâmetros;
        • usar QByteArray no lugar de QString pois na hora de escrever o datagrama, vc converte QString para QByteArray
        • usar o método "arg()" do objeto QString/QByteArray para construir seu datagrama

        []'s

        Computer Scientist
        Belo Horizonte - Brasil
        C++ Development
        Qt Development

        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