• 5537阅读
  • 2回复

[讨论]QTcpSocket connectToHost 内存问题 [复制链接]

上一主题 下一主题
离线amos
 

只看楼主 倒序阅读 楼主  发表于: 2014-07-02
在构造函数中 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();
都没用。有什么办法解决么???
离线lukai_q_t

只看该作者 1楼 发表于: 2018-04-20
找到解决办法了吗
离线libaineu2004

只看该作者 2楼 发表于: 2022-08-20

connettohost

wait一个超时时间吧

一直connect,都不给等待时间,正常网络不怎么好的时候握手都没那么快

pSocket->connectToHost   pSocket->waitForConnected(msec)

那么写本身就有点问题,哪有场景是毫秒级的关闭再connect的
快速回复
限100 字节
 
上一个 下一个