Re: wie einen stream mit den socks senden und empfangen?!
11. Mai 2005, 15:08
Moin!
[quote="Arnulf"]Was ich mich erinnere mußt du das file vorher erstellen bevor du etwas reinschreibst.
Also fmcreate - dann den stream wieder freigeben.
dann hast ein file mit 0kb.
danach mit fmopenreadwrite oder so öffnen und reinschreiben - dann gehts.../quote]
Das muss 100%ig nicht gemacht werden - daher muss das Problem an einer anderer Stelle liegen. fmCreate reicht und danach kann man ganz normal in die Datei schreiben.
@Threadersteller: Stell doch mal bitte dein komplettes Projekt als Anhang hier zur Verfügung oder schicks per PN, wenn es nicht öffentlich sein soll.
Ansonsten kann ich sonst noch auf meinen Chat auf meiner HP verweisen, was ich zuvor extra nicht gemacht habe, da er umfangreicher ist und etwas komplizierter als dieses hier, aber vielleicht erkennst du daraus, ob du irgendwas grundlegend anders machst...
Ansonsten ist mir beim überfliegen noch aufgefallen, das ein AllocMem() auf die gesamte Stream-Size leicht fehlschlagen kann, weil die Datei zu gross ist. Und da fallen mir gleich 2 andere Lösungsmöglichkeiten an:
1. Geht es an der Stelle um das Senden der Datei und daher könnte man auch einfach einen TMemoryStream nehmen und TMemoryStream.Memory angeben als Zeiger auf die Daten.
2. Oder einfach sich gar nicht gross drum kümmern und einfach nur die SendStream() Methode der Sockets nutzen zum senden. Dabei beachten, das der Socket den Stream freigibt wenn er fertig ist und man es daher nicht selber machen darf nach dem Aufruf (der sofort zurück kehrt, nicht erst nach dem Senden).
MfG
Muetze1
|