LINUX.ORG.RU

Сообщения iTroll

 

[Qt][TcpSocket]Утечки памяти

Здравствуйте. Прошу помочь в поиске решения проблемы. Имею устройство с которым связываюсь по Tcp стучусь на 10000-й порт. Порт точно открыт соединение точно происходит. Далее идет сеанс обмена данными(или не идет, по ситуации) после чего соединение закрывается.

Приложение вроде работает но со временем приложение начинает есть все больше и больше памяти.

В связи с чем написал небольшую аппликуху, которая устанавливает и тут же рвет соединение с переодичностью в 1 секунду.

Сомнения подтвердились память течет.

Вопрос как сделать так чтобы не текла.

Течет в процессе работы приложения. new QTcpSocket вызывается только один раз и потому эта память в расчетах не участвует.

Версия qt 4.7.4 Среда Виндовс.

Под линем еще не проверял. Но линуксовая тачка с конечным приложением будет стоять в закрытом шкафу и хочется сделать ее максимально стабильной.

Листинг: main.cpp

#include <QtCore/QCoreApplication>
#include <nettest.h>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    nettest nt;
    nt.timerid = nt.startTimer(20000);

    return a.exec();
}

nettest.h

#ifndef NETTEST_H
#define NETTEST_H

#include <QObject>
#include <QtNetwork>

class nettest : public QObject
{
    Q_OBJECT
public:
    explicit nettest(QObject *parent = 0);
    QTcpSocket * sock;
    int timerid;
    void get_currentdata(QString ipaddr, int port);
signals:

public slots:
    void timerEvent(QTimerEvent * te);
};

#endif // NETTEST_H

nettest.cpp

#include "nettest.h"

nettest::nettest(QObject *parent) :
    QObject(parent)
{
    sock = new QTcpSocket;
}

void nettest::timerEvent(QTimerEvent *te){
    if (timerid==te->timerId()){
        killTimer(timerid);
        get_currentdata("192.168.0.196",10000);
        timerid=this->startTimer(1000);
    }
}

void nettest::get_currentdata(QString ipaddr, int port) {
    sock->connectToHost(ipaddr,port);
    if (sock->waitForConnected(10000))
    {
        sock->close();
    }
}

 

iTroll
()

Ubuntu server 9.10 зачем ему python и куча прочего мусора

Ставлю ubuntu 9.10 server.

Оно ставит кучу всякого непотребного хлама. Особенно доставляет питон. И набуя ему питон?

Или может руки кривы и есть какие то магические пассы которые позволят не ставить их. Мне вот вообще нужна чистая незамутненная базовая система, как этого добиться в случае убунты.

любители посылать в генту и дебиан идут лесом. Интересует исключительно решение под убунту.

iTroll
()

RSS подписка на новые темы