Hi Chris,
ich sehe in Deiner Vorgehensweise ein paar Probleme !!!
Was soll das Programm den später genau können ?
Warum schickst Du den Kompletten Datei-Pfad mit ?
Der Client kann im Prinzip so bleiben, nur würde ich mir überlegen, ob Du wirklich den kompletten Pfad mitschicken willst/musst.
Zum Server :
Du verwendest die WriteStream-Funktion so, dass die Stream Grösse mitgeschickt wird.
Beim Lesen des Streams versuchst Du selber die Grösse des Streams auszulesen, das must Du gar nicht, das macht die ReadStream-Funktion :
Schreib es mal einfach so : ReadStream(ms);
Das sollte der Grund für Deinen Fehler sein, habe den Fehler früher selbst so gehabt
Ein weiterer Gedankenfehler ist, dass der Server Multi-Threaded ist und Du in der Execute-Methode einen Modualen Dialog(Save) ausführst.
Was passiert wenn zwei Clients Daten gleichzeitig senden ?
Was passiert, wenn niemand den SaveDialog bestätigt ?
Dann gibt es einen Timeout und dein Progg stürzt ab !!!
Ich kann Dir gern ein paar mehr Tipps geben, habe mich im letzen Jahr sehe intensiv mit
Indy beschäftigt, vor allen Dingen mit IdTcpClient u. IdTcpServer
Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.