ok sorry - ich habs gerade ausprobiert und es funktioniert wirklich.
wenn jemand weiß warum würde ich das gerne wissen...
was macht den unterschied wenn ich den stream in packerln zerleg oder als ganzes rein schreib.
wie groß dürfen die packerln maximal sein?
also warum funktioniert das
lg
Arnulf
Edit:
also ganz richtig funktioniert es nicht - kann aber nur vermutungen anstellen warum.
ich bekomm jetzt keinen fehler mehr wenn ich eine 700 mb datei wegschicke.
allerdings schreib ich einen minni webserver und der muß ja die verbindung immer wieder trennen.
scheinbar trennt er die verbindung aber zu früh - bevor die datei noch ganz rauf geladen ist.
hier liegt wohl das gleiche problem wie vorher - ich kann die verbindung nicht trennen bevor nicht alles
rauf geladen ist:
so schaut der code aus:
Delphi-Quellcode:
try
buffer := AllocMem(AStream.Size);
for s := 1
to AStream.Size
div Package do
begin
AStream.
Read(Buffer^,
Package);
Socket.SendBuf(buffer^,
Package);
Sleep (50);
uploaded := s;
memo1.Lines.Add(inttostr(uploaded *
package));
end;
Sleep(50);
if ((uploaded*
Package) < AStream.Size)
then begin
last := AStream.Size - (uploaded *
Package);
AStream.
Read(Buffer^,last);
Socket.SendBuf(buffer^,last);
end;
finally
FreeMem(buffer);
FreeAndNil(AStream);
end;
socket.close;
das socket.close dürfte einfach zu früh kommen - aber darüber hab ich keine kontrolle zumindestens keine die ich kenne.
lg
Arnulf