Hallo,
Zitat von
marabu:
- Wie groß ist die Abweichung?
- Ist die Abweichung immer gleich?
Ich hab mir die Dateigröße mal anzeigen lassen: Interessant ist es, dass manchmal die Dateigröße "-1" - also eigentlich nicht vorhanden ist.
Zitat von
marabu:
- Welche Dateitypen sind betroffen?
Da ich nur Exe-Dateien schicke, kann ich nur von Exe-Dateien reden.
Zitat von
marabu:
- An welchen Stellen unterscheiden sich die gesendete und die empfangene Datei laut comp/filecomp/diff?
Was meinst du damit?
Zitat von
yankee:
Das kann zum Beispiel am Dateisystem liegen. Jenachdem, ob du FAT oder NTFS benutzt könenn geringfügigige Unterschiede auftreten
Ich hab die Probleme auch von NTFS zu NTFS.
Von NFTS zu FAT32 hab ich die wenigsten Probleme.
Zitat von
Muetze1:
s liegt einzig und alleine daran, zu erkennen, dass das OnClientRead() Ereignis mehrfach aufgerufen wird, bevor alles empfangen wurde. Es ist immer wieder das gleiche, das alle davon ausgehen, das ein OnClientRead immer auch gleich alle Daten bereit hält. Dem ist nicht so. Das OnClientRead wird immer ausgelöst, sobald er Daten empfangen hat - und wenn es nur ein Teil ist. Genauso wenig kann man davon ausgehen, das ReceiveText() die mit SendText() gesendeten Texte genauso gesplittet und als ganzen empfängt.
Bevor der Client aus dem Stream liest (klingt blöd - ich weiss), wird eine Variable auf "true" gesetzt, die ein mehrmaliges Starten der Auslesens verhindert. Erst wenn alles vorbei ist, wird diese Varialbe wieder auf "false" gesetzt.
Ich hab jetzt mal ein "Delay(1000)" beim Server reinprogrammiert, bevor dieser den Stream sendet - daraufhin hat sich das ganze deutlich verbessert und es funktioniert bei jedem mal. Ich weiss jetzt nicht ob das so ganz der Stein der Weisen ist.
Aber ich werd das jetzt mal etwas im Auge behalten.