den Fehler hab ich ja bereits eingesehen und korrigiert:
Delphi-Quellcode:
if StreamIn.Size mod buffersize > 0 then
StreamOut.CopyFrom(StreamIn,StreamIn.size mod buffersize);
Wenn sich also die Dateigröße nicht komplett in n buffersize große Pakte einteilen lässt (was ja sehr wahrscheinlich ist), dann wird zum schluss noch ein kleineres Paket mit dem Rest verschickt. Das sollte aber weniger als eine Sekunde dauern bei der kleinen Buffer größe die ich gewählt habe und keine 10 sek.
Bei meiner Beispieldatei mit 23510720 Byte und einer Puffergröße von 1024 Byte werden damit im letzten schwung 23510720 mod 1024=704 Byte übertragen. Trotzdem muss ich 10 sek warten bis der darunterstehende code die Progressbar auf 100 bringt...