在构造函数中 new了 一个m_TcpSocket,然后关联了几个信号。
m_TcpSocket = new QTcpSocket(this);
connect(m_TcpSocket, SIGNAL(readyRead()),this,SLOT(readMessage()));
connect(m_TcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this,SLOT(displayError(QAbstractSocket::SocketError)));
connect(m_TcpSocket, SIGNAL(connected()), this, SLOT(onConnect()));
connect(m_TcpSocket, SIGNAL(disconnected()), this, SLOT(onDisConnect()));
然后在 qpushbutton 连接的槽函数中
m_TcpSocket->abort();
m_TcpSocket->connectToHost(StrIP,nPort);
当我关闭tcp连接m_TcpSocket->disconnectFromHost();,然后重新连接时发现内存不断增大。
我想实现的是当服务器连接不上的时候,重新进行连接请求直到连接上为止(断线重连)。
我就定义了timer 重复使用connectToHost函数进行连接直到连上为止。
基本功能我实现了,可是在这重复connectToHost时,内存会不停增大。不管我在connectToHost前添加
m_TcpSocket->abort();
m_TcpSocket->close();
m_TcpSocket->disconnectFromHost();
都没用。有什么办法解决么???