1

我使用 qt4.8.5 和 windows。我使用 QTcpSocket 连接服务器。如果服务器没有打开,那么我会尝试连接它。我的方法是:

sock = new QTcpSocket(this);
sock->connectToHost("127.0.0.1", 1234);
connect(sock, SIGNAL(disconnected()), this, SLOT(disconnected()));
connect(sock, SIGNAL(error(QAbstractSocket::SocketError)), 
          this, SLOT(error(QAbstractSocket::SocketError)));

我会得到 error() 信号。

sock->close();
sock->deletelater();

我使用计时器尝试连接,它确实调用了 error() 来删除袜子。但是我发现任务管理器中的句柄增加了。它有内存泄漏吗?但我关闭了袜子并使用 deletelater()。更重要的是,socket对象不在主线程中运行。

如果有人知道导致手柄增加的原因,请告诉我。谢谢!

4

0 回答 0