ti rispondo un attimo di corsa ma purtroppo devo uscire...purtroppo nn conosco bene la libreria UDP ma a livello di logica potresti fare :
switch(var){
....
case 'Q' : for(){
fai tutte le tue operazioni
if(è arrivato un nuovo pacchetto == true) break;
}
....
}
in serata poi rileggo il post per vedere come è andata...