私は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() を使用しています。さらに、ソケット オブジェクトはメイン スレッドで実行されません。
ハンドルが大きくなる原因を知っている方がいましたら教えてください。ありがとう!