Via UDP kannst du allerdings nie wissen, ob du auch alle Teile der Datei bekommst und ob sie in der richtigen Reihenfolge sind. Wenn du also unbedingt UDP nutzen willst, musst du die Pakete markieren und beim Empfang entsprechend wieder zusammensetzen. Sich darauf zu verlassen, dass es schon klappen wird, könnte lustige / traurige Ergebnisse bringen.
Für Hole Punching ist UDP allerdings nicht erforderlich, Skype verschickt Dateien auch per
TCP, alles andere wäre auch wenig sinnvoll. Mehr zu
TCP Hole Punching:
http://en.wikipedia.org/wiki/TCP_hole_punching