Сделал,все равно так же.Могу только добавить что память ведет себя интересно.При создании сокета в первый раз а потом его удалении удаляется ток половина памяти.Но в дальнейшем при создании память увеличивается уже не на 0.2 а на 0.3,а при удалении удаляется 0.2.
Да, и событие finished() точно происходит.
Стоп. Ты передаешь дескриптор, значит объект QTcpSocket созданный в QTcpServer остается живым и будет удален при разрушении объекта QTcpServer.
Вот этот объект coming_socket будет жить до тех пор пока будет жить объект serverComing.
C++ (Qt)
void main_widget::slotComingNewConnection()
{
coming_socket=serverComing->nextPendingConnection();
}
Попробуй сделать второй вариант, т.е. передавать в поток сам объект QTcpSocket и удалять его при завершении потока.
C++ (Qt)
void main_widget::slotComingNewConnection()
{
coming_socket=serverComing->nextPendingConnection();
socket_thread *sock_thread=new socket_thread( coming_socket );
...
sock_thread->start();
}
socket_thread::socket_thread( QTcpSocket *sock ) : socket( sock )
{
socket->setParent( 0 );
socket->moveToThread( this )
}
socket_thread::~socket_thread()
{
delete socket;
}
void socket_thread::run()
{
socket_coming com( socket );
...
exec();
}