Vielleicht muss er ja aus irgendeinem Grund UDP verwenden? (ich kann mir ein paar vorstellen von hole-punching bis multicasting)
Grundsätzlich würd ich so vorgehen, dass ich die nummerierung konsistent halte sprich 1..2..3..4..n
wenn du dann 1..2..4 bekommst dann würd ich 1 und 2 verarbeiten und sobald das 4te kommt alle weiteren pakete in eine liste schreiben, solange bis ich das 3te kommt danach würde ich die liste soalange durchgehen bis ich wieder auf eine auf eine nummer stoße die noch nicht da sein sollte ab da gehts wie oben beschrieben weiter.
Was du dabei nie vergessen darfst UDP hat keine "empfangsgarantie" solltest du also nach einer gewissen zeit noch immer kein paket haben auf das du aber wartest dann musst du es manuell erneut anfordern, kann ja auch verloren gegangen sein. Hierbei ist wieder zu beachten das sich die Latenzzeiten erheblich vergrößern
Allgemein hat HoaX natürlich recht TCP würde das alles für dich sicherstellen, solltest du dennoch udp verwenden wollen hast du jetzt einen ansatz.
LG Hemeroc