File Transfer mit Socket

Spezielle Fragen zu Netzwerk-Protokollen, DNS, Socket ...
Antworten
XYGS
Foriker
Beiträge: 10
Registriert: Do 5. Mai 2016, 11:40
Kontaktdaten:

File Transfer mit Socket

Beitrag von XYGS » Sa 13. Jan 2018, 16:17

Hallo zusammen,

mein Chat-Programm funktioniert bereits ganz gut (auch mit AES-Verschlüsselung). Jetzt versuche ich zusätzlich das Übertragen von Dateien möglich zu machen. Das funktioniert mit kleinen Dateien. Von einer MP3-Datei (Größe etwa 4 MB) wurden jedoch nur etwa 300 000 Bytes übertragen. Ich verwende
write und read zum Übertragen.

Code: Alles auswählen

Write #thisSocket, Datei, Len(Datei)
         Read #thisSocket, Datei, Len(Datei)
Muss ich große Dateien Blockweise übertragen? Oder funktionieren Write und Read nicht mit großen Dateien?
Vielen Dank für eure Hilfe

XYGS

SommerWin
Foriker
Beiträge: 71
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: File Transfer mit Socket

Beitrag von SommerWin » Mo 15. Jan 2018, 22:00

Hallo,
ich glaube das hat irgend was mit dem Puffer zu tun.
Hatte ein ähnliches Problem bei der Datenübertragung zu meinem Printserver, da wurde auch nur ein kleiner Teil übertragen und der Rest verschluckt.
Vielleicht kann man den Client (Empfänger) so umschreiben, dass er solange Daten empfängt bis ein EOF kommt.

Schöne Grüsse Kurt

XYGS
Foriker
Beiträge: 10
Registriert: Do 5. Mai 2016, 11:40
Kontaktdaten:

Re: File Transfer mit Socket

Beitrag von XYGS » Di 16. Jan 2018, 20:38

Ich teste gerade die Dateiübertragung mit Blöcken. Ich habe mein Clientprogramm jetzt so umgeschrieben, dass man die Blockgröße frei wählen kann. Außerdem kann man eingeben, wie lange wait nach jedem read und write warten soll. Das war teilweise erfolgreich. Auf Flush kann man sich wohl auch nicht verlassen. Deshalb werde ich mein Programm noch mal ändern. Für jeden empfangenen Block soll überprüft werden, ob die Länge stimmt. Wenn ein Block zu klein ist, muß das Programm warten. Vielleicht ist das die Lösung. Wenn ein Block zu gross ist, dann wird es kompliziert,

SommerWin
Foriker
Beiträge: 71
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: File Transfer mit Socket

Beitrag von SommerWin » Di 16. Jan 2018, 23:18

Ich glaub einfacher und sicherer wäre für jeden Datenblock eine Prüfsumme bilden und diese auf der Clientseite überprüfen.
So kann man auch sicher sein, dass die Daten nicht nur von der Länge stimmen sondern auch korrekt übertragen wurden.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste