All'interno del "pacchetto" metti una informazione che indica quale pacchetto è, un ID/progressivo o altro di simile.Originariamente inviato da seibi
però accade che A ha già mandato un paio di pacchetti quando B inizia a ricevere, cosi B mi si blocca su una receive, come potrei fare a ovviare a questo problema
Chiaramente essendo su UDP, i pacchetti possono arrivare non in ordine o addirittura non arrivare affatto. Insomma, non c'è garanzia né dell'arrivo a destinazione, né del loro ordine.
Quindi non devi "contare" quanti ne arrivano ma andare a segnarti da qualche parte quali sono arrivati. Questo comunque non risolve il problema del ciclo, che in teoria dovrebbe continuare all'infinito. Lo risolvi gestendo un apposito timeout (si può fare, vedi setSoTimeout() di DatagramSocket). Se dopo un tot di tempo non hai ricevuto più nulla .... amen, qualcosa è andato storto.