Robert B.: C Sockets und Fragmentierung

Beitrag lesen

Moin encoder,

Rein prinzipiell kannst du mit read auch eine große Datenmenge auf einmal von einem Socket lesen.

Sofern diese Daten auch wirklich alle schon beim Empfänger vorhanden sind.
Meines Wissens kann ein Paket in beliebig vielen Einzelpaketen ankommen und muss dann zusammengestückelt werden. Genauso können verschiedene Messages die mit verschiedenen Aufrufen von write gesendet wurden in einem einzigen Paket ankommen.

Die socket-Implementierung abstrahiert die TCP-/IP-Ebene bereits für read und write. Da ist es dann kein Unterschied, ob du aus einer Datei oder von einem Socket liest oder dorthin schreibst. Der Rückgabewert von read hilft dir sogar beim Lesen.

Es gibt dafür fertige Protokolle 😉

Meinst du Implementierungen wie FTP und so?

Zum Beispiel, ja.

Was ich brauche ist etwas wo beide Seite beliebig senden können und die Empfängerseite jeweils ein Datenpaket bekommt. Wie würde so ein Protokoll heißen?

FTP, scp, rcp, … Wenn du wie vorgeschlagen eine Archivdatei sendest, hast du genau deine Anforderung erfüllt.

Viele Grüße
Robert