diff -r 57ed1444606e -r eec37eb7f5db QTfrontend/tcpBase.cpp --- a/QTfrontend/tcpBase.cpp Wed Feb 14 20:05:20 2007 +0000 +++ b/QTfrontend/tcpBase.cpp Wed Feb 14 22:15:55 2007 +0000 @@ -59,7 +59,6 @@ IPCSocket = IPCServer->nextPendingConnection(); if(!IPCSocket) return; connect(IPCSocket, SIGNAL(disconnected()), this, SLOT(ClientDisconnect())); - connect(IPCSocket, SIGNAL(disconnected()), IPCSocket, SLOT(deleteLater())); connect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); SendToClientFirst(); } @@ -78,16 +77,20 @@ void TCPBase::ClientDisconnect() { + disconnect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); onClientDisconnect(); if(srvsList.size()==1) srvsList.pop_front(); emit isReadyNow(); + IPCSocket->deleteLater(); deleteLater(); } void TCPBase::ClientRead() { - readbuffer.append(IPCSocket->readAll()); + QByteArray readed=IPCSocket->readAll(); + if(readed.isEmpty()) return; + readbuffer.append(readed); onClientRead(); }