我使用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()。 更重要的是,套接字对象不在主线程中运行。
如果有人知道导致手柄增加的原因,请告诉我。 谢谢!