C++ (Qt) YourClass::handleReadyRead(){ if (port->bytesAvailable() < expected) { if (!timer->isActive()) timer->singleShot(20); } else { timer->stop(); // здесь обрабатываешь пакет, считаем что он весь пришел (или делаешь какие нить проверки) // ... }} YourClass::handleTimeout(){ // здесь считаем что весь пакет вовремя не пришел и что-то делаем.}