C++ (Qt)// Слот обработки сигнала readyRead()void TCPClientQt::onReadData(){ QString strArr=""; int pos; m_ReadBuffer += m_pTcpSocket->readAll(); //m_ptxtInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") //+" onReadData "+QString::number(m_ReadBuffer.size())); //m_count=m_pTcpSocket->bytesAvailable()+m_count;m_count=+m_count; // Мы все вычитываем в буфер m_buffer // Здесь мы можем проверить находится ли в буфере полный пакет данных для обработки, если да - обрабатываем его и выкусываем из буфера if(!isBegin && m_ReadBuffer.contains("+WIND:83:")) { pos=17; strArr=m_ReadBuffer.left(pos); m_ptxtInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") +" Begin "+QString::fromAscii("+WIND:83:")); isBegin=true; } if(!isEnd && m_ReadBuffer.contains("+WIND:85:")) { pos=m_ReadBuffer.indexOf("+WIND:85:"); strArr=m_ReadBuffer.right(17); m_ptxtInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") +" End "+QString::fromAscii("+WIND:85:")); isEnd=true; } m_ptxtInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") +" Recive "+QString::number(m_count)); //Если в буфере осталась только часть пакета, то просто выходим и ждем следующую порцию данных}