Einzelnen Beitrag anzeigen

Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#27

Re: wie versende ich mit tclient/serversocket eine datei?

  Alt 7. Feb 2007, 12:09
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
  Mit Zitat antworten Zitat