# DatagramSocket und UDP



## Kr0e (30. Jan 2009)

Hi,
mal ne Frage zum DatagramSocket bzw. UDP allgemein:

Bei TCP is es ja so:

Datein kommen auf jeden Fall und in der richtigen Reihenfolge an.
Aber nicht unbedingt in einem Packet. Sprich, wenn ich 1024 schicke,
könne auch erst 512 ankommen und dann anschliessend nochmal 512...

Wenn ich bei dem DatagramSocket ein DatagramPacket verschicke,
und ich warte mit meinem anderen mit receive solange, bis dort ein
Datagram eintrudelt, kann ich dann zumindest sicher gehen, dass dieses
Datagram vollständig ist ? Also ich meine.. Das die PAckete in der falschen
Reihenfolge eintrudeln, ok, das geht ja noch, auch dass manche garnciht kommen
kann man korregieren, aber wenn man die Bytes die eintrudeln, nicht einem
bestimmten Packet zuordnen kann, dann wirds ja echt haarig xD

Ich hab bisher noch nicht wirklich mit UDP gearbeitet.. nur mit TCP...

Ich hoffe ihr könnt mir das etwas Licht ins Dunkle bringen ;=)

Gruß Chris


----------



## Gelöschtes Mitglied 5909 (30. Jan 2009)

http://de.wikipedia.org/wiki/User_Datagram_Protocol



> UDP stellt einen verbindungslosen, nicht-zuverlässigen Übertragungsdienst bereit. Das bedeutet, es gibt keine Garantie, dass ein einmal gesendetes Paket auch ankommt, dass Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden, oder dass ein Paket nur einmal beim Empfänger eintrifft. Eine Anwendung, die UDP nutzt, muss daher gegenüber verlorengegangenen und unsortierten Paketen unempfindlich sein oder selbst entsprechende Korrekturmaßnahmen beinhalten.


----------



## Kr0e (30. Jan 2009)

Ok, viele Fragen wären damit nun geklärt...
Aber eine Frage noch nicht:
Ist sichergestellt, dass ein Packet wenn es ankommt, wenigstens vollständig ist ?
Ich kann mir diese Frage aus deinem Zitat nicht beantworten...

Gruß Chris


----------



## HoaX (30. Jan 2009)

http://en.wikipedia.org/wiki/User_Datagram_Protocol hat gesagt.:
			
		

> Datagrams - Packets are sent individually and are guaranteed to be whole if they arrive. Packets have definite bounds and no split or merge into data streams may exist.


----------

