首页| 论坛| 消息

标题:QTcpSocket connectToHost 内存问题
作者:amos
日期:2014-07-02 15:39
内容:

在构造函数中 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->[color=#c00 ..


#1 [lukai_q_t 04-20 21:02]
找到解决办法了吗
#2 [libaineu2004 08-20 16:53]
connettohost
wait一个超时时间吧
一直connect,都不给等待时间,正常网络不怎么好的时候握手都没那么快
pSocket->connectToHost pSocket->waitForConnected(msec)
那么写本身就有点问题,哪有场景是毫秒级的关闭再connect的

回复 发表
主题 版块