ich "spiele" gerade ein wenig mit Sockets rum um eine Datei zu übertragen.
Keine Angst, mein Programm funktioniert schon und tut was es soll, mich interessiert jedoch ob es noch (eine) andere Möglichkeit(en) gibt, eine Datei via Sockets zu übertragen.
Bei meinem Programm mache ich es so:
Ich übertrage vor dem eigentlichen Transfer der Datei erst die Dateigröße, dann erst starte ich die eigentliche Übertragung der Datei.
Die zuvor gesendete Dateigröße verwende ich in einer Schleife, um sie mit der Buffersize "runterzuzählen". (Ich glaube diese Variante wird ziemlich oft verwendet.)
Welche Alternativen gibt es sonst noch? Geht es auch ohne vorher die Dateigröße senden zu müssen?
Hierzu würde mir nur etwas in der Art einfallen:
Code: Alles auswählen
while true:
data = sock.recv(BUFFER)
if not data:
break
machwasmitdata(data) #Funktion die irgendwas mit 'data' macht
Bei der Variante mit der Dateigröße könnte man am Schluss beispielsweise noch die übertragenen Daten mit der wirklichen Dateigröße vergleichen um zumindest eine "kleine Sicherheit" zu haben, ob alles funktioniert hat.
Freundliche Grüße